如何在WooCommerce中移动产品变化描述

时间:2015-11-20 16:52:54

标签: wordpress woocommerce

我想在添加到购物车按钮下方的Woocommerce中移动我的产品变体描述,我找不到我应该使用的钩子。这些是变体的自定义描述,加载了AJAX中的选择。

我可以在添加到购物车按钮下面挂钩另一个自定义功能。所以我认为我的问题是不知道钩子的名称和/或它是否是一个钩子和一个过滤器。我认为它是woocommerce_before_single_variationwoocommerce_before_add_to_cart_button

以前我曾尝试过多次尝试,但在functions.php中没有运气:

remove_action( 'woocommerce_after_single_variation','woocommerce_single_product_summary', 20 );
add_action( 'woocommerce_after_single_variation', 'woocommerce_single_product_summary',  9 );

//try #2
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20);
add_action('woocommerce_after_add_to_cart_button', 'woocommerce_single_variation', 35);

谢谢!

3 个答案:

答案 0 :(得分:1)

我正在寻找的功能作为默认包含在WooCommerce 2.4中,但是在钩子上完成。它是由jQuery更新div而添加的 - 我在woocommerce/js/assets/frontend/add-to-cart-variation.js中找到了它。所以我移动了div的位置:

add_action ('woocommerce_after_single_variation', 'move_descriptions', 50);
function move_descriptions() {
    ?>
    <div class="woocommerce-variation-description" style="border: 1px solid transparent; height: auto;"></div>
    <?php
}

答案 1 :(得分:0)

我认为这样做,

remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20); 
add_action('woocommerce_after_add_to_cart_form', 'woocommerce_template_single_excerpt');

如果产品是可变的,只移动简短描述

add_action('wp_head', 'move_short_desc_for_varition');
function move_short_desc_for_varition() {
    #
    global  $post;
    $product = get_product( $post->ID );
    if( $product->is_type( 'variable' ) ){ 
        remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20); 
        add_action('woocommerce_after_add_to_cart_form', 'woocommerce_template_single_excerpt');
    }
}

答案 2 :(得分:0)

问题在于删除钩子的优先级。

我举个例子(这项工作对我来说):

remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20);
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30);
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 15 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 10 );

注意并尝试不同的优先事项。