Toutes mes réponses sur les forums
-
AuteurMessages
-
Du coup tout cela me fait réfléchir… j’ai rien changé coté pages produits WP… mes images de variations sont bien là… mais j’ai peut être raté quelque chose coté Elementor ? J’ai importé une page produit sans rien modifier… en même temps j’ai parcouru les menus d’Elementor… je ne vois rien de particulier sur le sujet… Merci pour vos suggestions.
Salut,
Merci pour ton message que je consulte à l’instant.
Etrangement les variations d’images fonctionnaient parfaitement sans Elementor. J’ai vérifié la configuration. Rien ne me parait anormal… bizarre, bizarre. Belle soirée.
Finalement il suffisait de désactiver l’extension Woocommerce Menu Cart que j’avais installé… Merci 😉
19 janvier 2022 à 20 h 01 min en réponse à : [Résolu] Ajout automatique d’un produit gratuit au panier (sans code promo) #2393679Bonsoir Ferman et merci beaucoup pour cette nouvelle réponse que je découvre à l’instant.
Ce qui nous donne donc au final (je place le global ci-après pour celles et ceux intéressés par ce code génial) :
function ferman_add_product_to_cart() {
$cart_total = 50;
$free_product = wc_get_product( 22559 );
$subtotal = WC()->cart->subtotal;
$free_product_id = $free_product->get_ID(); // Product Id of the free product which will get added to cart
$free_product_price = $free_product->get_regular_price($free_product_id);
$free_product_reduced_price = $free_product->get_sale_price($free_product_id);
$found = false;
//check if product already in cart
if ( sizeof( WC()->cart->get_cart() ) > 0 ) {
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
$product = $values['data'];
if ( $product->get_id() == $free_product_id )
$found = true;
}
// if product not found, add it
if ( ! $found && $subtotal >= $cart_total ){
WC()->cart->add_to_cart( $free_product_id );
}
elseif ($found && $subtotal < $cart_total ){
$product_cart_id = WC()->cart->generate_cart_id( $free_product_id );
$cart_item_key = WC()->cart->find_product_in_cart( $product_cart_id );
if ( $cart_item_key ) {WC()->cart->remove_cart_item( $cart_item_key );}
else {return;}
}
}
else {
return;
}
}
add_action( 'template_redirect', 'ferman_add_product_to_cart' );
function bbloomer_find_product_in_cart_modif() {
$free_product = wc_get_product( 22559 );
$free_product_id = $free_product->get_ID();
$free_product_price = $free_product->get_regular_price($free_product_id);
$free_product_name = $free_product->get_name($free_product_id);
$in_cart = false;
foreach( WC()->cart->get_cart() as $cart_item ) {
$product_in_cart = $cart_item['product_id'];
if ( $product_in_cart === $free_product_id ) $in_cart = true;
}
if ( $in_cart ) {
$notice = 'Pour cette commande nous vous offrons ce produit : '. $free_product_name.' Valeur : '.$free_product_price.' euros.';
wc_print_notice( $notice, 'notice' );
}
}
add_action( 'woocommerce_before_cart', 'bbloomer_find_product_in_cart_modif' );17 janvier 2022 à 20 h 58 min en réponse à : [Résolu] Ajout automatique d’un produit gratuit au panier (sans code promo) #2393467Bonsoir,
Je me demandais ce qu’il fallait que je modifie pour que le produit gratuit s’ajoute lorsque le sous-total (et non pas le total qui inclut les frais de port) atteint le minimum d’achat. Dois je remplacer « total » par « subtotal » partout dans le code ? Je ne sais pas si c’est correct. Merci pour vos conseils 😉
4 janvier 2022 à 20 h 58 min en réponse à : [Résolu] Ajout automatique d’un produit gratuit au panier (sans code promo) #2392404Merveilleux. Tout à l’air ok maintenant.
Merci infiniment Ferman.
4 janvier 2022 à 18 h 15 min en réponse à : [Résolu] Ajout automatique d’un produit gratuit au panier (sans code promo) #2392391Bonsoir,
A la ligne 23 de la première fonction vous m’avez demandé de remplacer « total-$free_product_price » par simplement « total ».
Sinon tout fonctionne parfaitement. J’ai juste cette petite alerte. Merci.
4 janvier 2022 à 16 h 40 min en réponse à : [Résolu] Ajout automatique d’un produit gratuit au panier (sans code promo) #2392386Bonjour,
Je viens de m’apercevoir que j’ai cette alerte sur la ligne : $total = total;
Warning: Use of undefined constant total - assumed 'total' (this will throw an Error in a future version of PHP) in /homepages/5/d689643507/htdocs/wp-content/themes/storefrontenfant/functions.php on line 146
Une idée peut-être ?
Merci 🙂
3 janvier 2022 à 23 h 59 min en réponse à : [Résolu] Ajout automatique d’un produit gratuit au panier (sans code promo) #2392341J’ai tout modifié selon vos indications.
Tout semble fonctionner parfaitement.
C’est vraiment du génie.
Votre travail et vos conseils sont d’une immense utilité.
Un grand grand grand merci 🙂
3 janvier 2022 à 22 h 54 min en réponse à : [Résolu] Ajout automatique d’un produit gratuit au panier (sans code promo) #2392331Correction : pas d’erreur sur function bbloomer (l’erreur c’était moi) 🙂
3 janvier 2022 à 22 h 43 min en réponse à : [Résolu] Ajout automatique d’un produit gratuit au panier (sans code promo) #2392327Bonsoir Ferman et merci pour ce code merveilleux !
Pour tester j’ai laissé le seuil à 200€.
– J’ai ajouté des produits payants au panier jusqu’à dépasser le seuil pour arriver à : 200.60€ -> le produit gratuit s’est bien ajouté au panier.
– J’ai ensuite ajouté un produit payant. Nouveau montant : 206.50€ -> le produit gratuit est resté dans le panier (parfait).
– J’ai supprimé le dernier produit ajouté, le montant du panier est donc revenu à 200,60€ mais bizarrement le produit gratuit a disparu du panier. Je dois ajouter un produit payant pour que le produit gratuit revienne dans le panier.– Problème : Lignes 16 et 17 : Si je change $_product par $product.; = erreur.
– Ligne 23 de la première fonction: remplacer « total-$free_product_price » par simplement « total » -> OK fait.
– Pour finir, j’ai une erreur si j’ajoute la function bbloomer.
Voilà pour mon petit rapport 😉
Merci beaucoup pour ce code absolument génial.2 janvier 2022 à 21 h 24 min en réponse à : [Résolu] Aide sur code (ajout d’un produit gratuit au panier) #2392269Bonsoir et merci pour vos éclairages.
Ferman… un grand merci.
C’est tellement cool d’avoir la chance de bénéficier de telles compétences.
Le code final donnerait donc :
function action_woocommerce_removed_coupon( $coupon_code ) {
if($coupon_code == 'test') {
$product_id = 22559;
$product_cart_id = WC()->cart->generate_cart_id( $product_id );
var_dump ($product_cart_id);
$cart_item_key = WC()->cart->find_product_in_cart( $product_cart_id );
if ( $cart_item_key ) WC()->cart->remove_cart_item( $cart_item_key );
}
}
add_action( 'woocommerce_removed_coupon', 'action_woocommerce_removed_coupon', 10, 1 );
add_action('woocommerce_applied_coupon', 'apply_product_on_coupon');
function apply_product_on_coupon( ) {
global $woocommerce;
$coupon_idcus = 'test';
$free_product_id = 22559;
if(in_array($coupon_idcus, $woocommerce->cart->get_applied_coupons())){
$woocommerce->cart->add_to_cart($free_product_id, 1);
}
}Ton code est parfait et fonctionne donc idéalement. Respect.
Merci, merci infiniment.
Bonne soirée à toutes, tous.
2 janvier 2022 à 14 h 52 min en réponse à : [Résolu] Aide sur code (ajout d’un produit gratuit au panier) #2392243Bonjour,
Avec ce code je n’ai plus d’erreur. Le produit gratuit monte bien dans le panier si la commande est au minimum de 50€ (réglage code promo Woo) mais il reste dans le panier si on descend ensuite la commande à – par exemple – 40€. Simultanément l’alerte indique pourtant bien que le code promo n’est plus valable.
function action_woocommerce_removed_coupon( $coupon_code ) {
if($coupon_code == 'test') {
$product_id = 22559;
$product_cart_id = WC()->cart->generate_cart_id( $product_id );
$cart_item_key = WC()->cart->find_product_in_cart( $product_cart_id );
if ( $cart_item_key ) WC()->cart->remove_cart_item( $cart_item_key );
}
};
add_action('woocommerce_applied_coupon', 'apply_product_on_coupon');
function apply_product_on_coupon( ) {
global $woocommerce;
$coupon_idcus = 'test';
$free_product_id = 22559;
if(in_array($coupon_idcus, $woocommerce->cart->get_applied_coupons())){
$woocommerce->cart->add_to_cart($free_product_id, 2);
}
}2 janvier 2022 à 13 h 26 min en réponse à : [Résolu] Aide sur code (ajout d’un produit gratuit au panier) #2392240Bonjour ferman et merci pour ce retour.
J’ai essayé mais j’ai une erreur à la ligne 123 qui est uniquement composée d’une } Une idée peut-être ? Merci 😉
Erreur d'analyse : erreur de syntaxe, '}' inattendu, attente de la fin du fichier dans /homepages/5/d689643507/htdocs/wp-content/themes/storefrontenfant/functions.php à la ligne 123
-
Cette réponse a été modifiée le il y a 1 année et 11 mois par
Mandes.
Un coup de génie ! Merci ferman ?
-
Cette réponse a été modifiée le il y a 1 année et 11 mois par
-
AuteurMessages