安排Woocommerce变量产品数据

时间:2016-02-26 10:26:11

标签: php wordpress woocommerce

我正在设计Woocommerce单品页面, 我为简单的产品设计了产品页面 现在我正在设计变量产品,因为我创建了这个功能 安排"选择变化"选择和"加入购物车"按钮

function filter_grouped_cart(){
   global $post;
   if( function_exists('get_product') ){
       $product = get_product( $post->ID );
       if( $product->is_type( 'variable' ) ){
            remove_action( 'woocommerce_variable_add_to_cart', 
                    'woocommerce_variable_add_to_cart', 30 );
            add_action( 'woocommerce_before_single_product_summary', 
                    'woocommerce_variable_add_to_cart', 45 );

            remove_action( 'woocommerce_single_variation', 
                    'woocommerce_single_variation_add_to_cart_button', 20 );
            add_action( 'woocommerce_before_single_product_summary', 
                    'woocommerce_single_variation_add_to_cart_button', 60 );
        }
    }
}

我使用了条件逻辑,因为没有它我的简单产品页面什么都没有显示。 这段代码工作正常,但我有这些行为及其优先级

remove_action( 'woocommerce_before_single_product_summary', 
        'woocommerce_show_product_images', 20 );
add_action( 'woocommerce_single_product_summary', 
        'woocommerce_show_product_images', 20 );

remove_action( 'woocommerce_single_product_summary', 
        'woocommerce_template_single_title', 5 );
add_action( 'woocommerce_before_single_product_summary', 
        'woocommerce_template_single_title', 30 );

remove_action( 'woocommerce_after_single_product_summary', 
        'woocommerce_output_product_data_tabs', 10 );
add_action( 'woocommerce_before_single_product_summary', 
        'the_content', 40 );

remove_action( 'woocommerce_single_product_summary', 
        'woocommerce_template_single_price', 10 );
add_action( 'woocommerce_before_single_product_summary', 
        'woocommerce_template_single_price', 50 );

remove_action( 'woocommerce_single_product_summary', 
        'woocommerce_template_single_add_to_cart', 30 );
add_action( 'woocommerce_before_single_product_summary', 
        'woocommerce_template_single_add_to_cart', 60 );

我想"选择选项"在价格之前选择,即

add_action( 'woocommerce_before_single_product_summary', 
        'woocommerce_template_single_price', 50 );

优先级为50 所以我为

添加了优先级45
add_action( 'woocommerce_before_single_product_summary', 
        'woocommerce_variable_add_to_cart', 45 );

但是woocommerce_variable_add_to_cart仍在下面显示 woocommerce_template_single_price enter image description here 在上面的图片中,如果我有45-50-60,那么60和50将在单行中,45在50以上,这是我的要求。

1 个答案:

答案 0 :(得分:1)

我试过你的代码,但它在这里打破了我的页面结构。

然后最终它引导我通过钩子进行研究并尝试了一些排列和组合,从而产生了这个代码。

remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
add_action( 'woocommerce_single_variation', 'woocommerce_template_single_price', 19 );

希望对你有用。这里没有添加任何条件逻辑来限制它应用于其他类型的产品(我认为你可以很好地处理)。

enter image description here