我正在尝试按以下顺序重新设计具有元素的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模板钩子完成后添加此操作的。