2016-02-26 63 views
2

我设计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_priceenter image description here 在上面的图片中,如果我有45-50-60,那么60和50会出现在单行中,45以上的是50,这是我的要求。

回答

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

+0

是的,这解决了这个问题,对不起,迟交回复。 –

+0

最终改进代码 https://jsfiddle.net/wasim717/08dj7ey5/ –