在单个产品页面上重新排序 WooCommerce 操作


Reordering Woocommerce actions on single product page

我正在尝试按以下顺序重新设计具有元素的Woccommerce单个产品页面:

标题

产品选项卡(描述/评论)

价格

"添加到购物车"按钮

据我了解,我可以简单地删除主题函数.php文件中的操作,然后以我想要的优先级重新添加它们,所以我这样做了:

    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 );
add_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 6 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 8 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 99 );

但是,无论我如何处理优先级编号,产品选项卡都会显示在末尾。显然有些事情我不知道。有人可以开导我吗?

啊哈!

有趣的是,你

经常花很长时间试图解决问题,然后一旦你寻求帮助,你就会意识到答案是什么。

秘密在于问题,真的...

我一直在添加此操作

add_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 6 );

当我应该添加这个时:

add_action( 'woocommerce_single_product_summary', 'woocommerce_output_product_data_tabs', 6 );

关键的区别在于"_after"。

就是这么简单。当然,它是在所有woocommerce_single_product_summary模板钩子完成后添加此操作的。