1
votes

Déplacer le prix de la variante sélectionnée sous le formulaire des modules complémentaires de produit dans Woocommerce

J'ai le plugin officiel WooCommerce Product Addon et j'utilise sur un produit variable. cependant, j'aimerais que le prix soit affiché au-dessus du bouton Ajouter au panier plutôt qu'en dessous de la liste de sélection des variantes, comme ce n'est pas le cas actuellement.

J'ai cherché partout et j'ai déplacé le prix des produits individuels sous la brève description, mais je ne parviens pas à le faire pour les produits variables avec des modules complémentaires.

Capture d'écran montrant l'emplacement actuel et l'emplacement souhaité:

entrez la description de l'image ici

Toute aide est grandement appréciée.


0 commentaires

3 Réponses :


0
votes
jQuery('.price').insertAfter('.sauce')
a front-end solution (just put the right selectors)

0 commentaires

1
votes

Le plugin Addon de produit de WooCommerce affiche déjà un tableau de prix personnalisé juste avant boutons d'ajout au panier, où la variation de prix sélectionnée est affichée, avec la tarification de l'option sélectionnée avec le sous-total:

 entrez la description de l'image ici

Vous ne pouvez pas seulement déplacez uniquement le prix de la variante sélectionnée affichée , car il est piloté par JavaScript lors de l'événement de sélection en direct et groupé avec la disponibilité de la variante et la description de la variante (le cas échéant).

Alors, que pouvez-vous faire est:

1) Pour déplacer le prix de la variante avec sa disponibilité et sa description avant le bouton Ajouter au panier en utilisant:

add_filter( 'woocommerce_available_variation', 'hide_variation_selected_price', 10, 3 );
function hide_variation_selected_price( $data, $product, $variation ) {
    if( $product_addons = $product->get_meta('_product_addons') ) {
        if( sizeof($product_addons) > 0 ) {
            $data['price_html'] = '';
        }
    }
    return $data;
}

Le code va dans le fichier function.php de votre thème enfant actif (ou thème actif). Testé et fonctionne.

Mais il sera affiché après le tableau de prix personnalisé "Addon":

 entrez la description de l'image ici


2) masquer le prix de la variante Woocommerce (car il est déjà affiché par le tableau de prix personnalisé "Addon")

add_action( 'woocommerce_before_variations_form', 'reposition_display_for_variable_products', 10 );
function reposition_display_for_variable_products() {
    global $product;

    if( $product_addons = $product->get_meta('_product_addons') ) {
        if( sizeof($product_addons) > 0 ) {
            remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation', 10 );
            add_action( 'woocommerce_single_variation', 'woocommerce_single_variation', 16 );
        }
    }
}

Le code entre function.php de votre thème enfant actif (ou thème actif). Testé et fonctionne.

 entrez la description de l'image ici


3) Utilisez les deux ensemble, en déplaçant la disponibilité de la variante et la description de la variante après" Addons " tableau de prix et bouton avant d'ajouter au panier:

 entrez la description de l'image ici


0 commentaires

0
votes

Pour déplacer l'emplacement des totaux des modules complémentaires de produit, vous pouvez l'ajouter à votre fichier functions.php :

if( isset($GLOBALS['Product_Addon_Display']) ){
  add_action( 'some_action_hook', array( $GLOBALS['Product_Addon_Display'], 'totals' ), 10 );
}

Et si vous souhaitez le rajouter:

if( isset($GLOBALS['Product_Addon_Display']) ){
  remove_action( 'woocommerce_product_addons_end', array( $GLOBALS['Product_Addon_Display'], 'totals' ), 10 );
}

Vous devez cependant vous assurer de deux choses:

  1. Vous devez transmettre l'identifiant (ou un identifiant) comme paramètre à votre nouveau hook.
  2. Le JS qui génère les totaux recherche le # product-addons-total dans un élément .cart .


0 commentaires