删除单个产品标签并添加相关内容,而不是在Woocommerce

时间:2018-03-09 14:58:04

标签: php wordpress woocommerce tabs product

我有一个客户想要将默认为WooCommerce中单个产品页面上的标签的信息提取到页面上的其他位置,并完全删除标签。

有三个默认产品标签:

  • 产品说明,
  • 其他信息
  • 和评论。

删除标签并设置要显示的说明很容易设置为 /wp-content/plugins/woocommerce/includes/wc-template-hooks.php

remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 );

function woocommerce_template_product_description() {
woocommerce_get_template( 'single-product/tabs/description.php' );
}
add_action( 'woocommerce_after_single_product_summary', 'woocommerce_template_product_description', 10 );

工作正常。

我尝试通过构建新功能来重复此过程,这些功能可以访问其他信息评论的模板文件,如下所示:

function woocommerce_template_product_addinfo() {
  woocommerce_get_template( 'single-product/tabs/additional-information.php' );
}
add_action( 'woocommerce_after_single_product_summary', 'woocommerce_template_product_addinfo', 20 );

function woocommerce_template_product_reviews() {
  woocommerce_get_template( 'single-product/review-rating.php' );
}
add_action( 'woocommerce_after_single_product_summary', 'woocommerce_template_product_reviews', 30 );

但两者都没有显示。我在这里做错了什么?

1 个答案:

答案 0 :(得分:6)

第一个woocommerce_get_template()已被弃用,取而代之的是wc_get_template()。经过一些搜索和测试(主要是为了显示评论),我找到了方法:

add_action( 'woocommerce_after_single_product_summary', 'removing_product_tabs', 2 );
function removing_product_tabs(){
    remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 );
    add_action( 'woocommerce_after_single_product_summary', 'get_product_tab_templates_displayed', 10 );
}
function get_product_tab_templates_displayed() {
    wc_get_template( 'single-product/tabs/description.php' );
    wc_get_template( 'single-product/tabs/additional-information.php' );
    comments_template();
}

代码进入活动子主题(或主题)的function.php文件。经过测试并工作(WC 3 +)