【问题标题】:Woocommerce product custom review tab hookWoocommerce 产品自定义评论标签挂钩
【发布时间】:2021-12-03 09:12:50
【问题描述】:

您好,我正在创建一个 woocommerce wordpress 网站,我正在尝试用我们自己的 Bazaarvoice 集成来替换默认评论显示。所以我回调了评论选项卡以显示我自己的函数,该函数获取产品的型号并将其放入代码中以显示 bazaarvoice 评论显示。该代码有效,除了global $product 无效,因为我真的不知道如何使用钩子。我知道函数 bv_reviews_tab 的 add_action 不正确,所以我不确定我应该放什么。我整天都在绞尽脑汁

add_filter( 'woocommerce_product_tabs', 'woo_renam_tabs', 98 );
function woo_renam_tabs( $tabs ) {
$tabs['additional_information']['title'] = __( 'Product Data' );    // Rename the additional information tab
$tabs['additional_information']['callback'] = 'woocommerce_product_additional_information_tab';
$tabs['reviews']['callback'] = 'bv_reviews_tab';

return $tabs;

}
add_action( 'woocommerce_product_tabs', ' bv_reviews_tab' );
function bv_reviews_tab( ) {

global $product;

if ( $product->is_type('simple' ) ) {

$model = esc_attr( get_post_meta( $product->get_id(), '_model_number', true ) );
   
}
elseif ( $product->is_type('variable' ) ) {
    // Get childIDs in an array
    $children_ids = $product->get_children();

    // Loop
    foreach ( $children_ids as $child_id ) {
        // Get product
        $product = wc_get_product( $child_id ); 

        $model = esc_attr( get_post_meta( $child_id, '_model_number', true ) );
    }
    }
    ?>
   <div 
    data-bv-show="reviews"
  data-bv-product-id= "<?php echo $model; ?>"                                                                                                                                                                                                                                                                                                         
   >
  </div>
  <?php
   }

【问题讨论】:

    标签: wordpress woocommerce hook product review


    【解决方案1】:

    在这种情况下不需要add_actionwoo_renam_tabs 函数中给出的 callback 值将触发您的自定义函数。删除 add_action 行,你应该很高兴。 global $product 也可以。

    此外,您需要为评论选项卡命名,并确保在 WooCommerce >设置 > 产品中启用评论选项卡

    这是我测试过并且正在运行的代码:

    add_filter( 'woocommerce_product_tabs', 'woo_renam_tabs', 98 );
    function woo_renam_tabs( $tabs ) {
    $tabs['additional_information']['title'] = __( 'Product Data' );    // Rename the additional information tab
    $tabs['additional_information']['callback'] = 'woocommerce_product_additional_information_tab';
    $tabs['reviews']['title'] = __( 'Reviews' ); ;
    $tabs['reviews']['callback'] = 'bv_reviews_tab';
    return $tabs;
    }
    
    function bv_reviews_tab() {
    global $product;
     ?>
    <div data-bv-show="reviews">
        <?php echo $product->get_name();?>
    </div>
    <?php
    }
    

    【讨论】:

    • 这对我没有任何作用。我开始时没有 add_action 但唯一发生的问题是它由于某种原因没有识别全局 $product ,因为它没有从中获得任何价值。我正在尝试获取自定义元字段(型号)而不是名称,并且我知道该功能有效,因为我以前使用过它。
    猜你喜欢
    • 2012-08-19
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-07
    • 1970-01-01
    相关资源
    最近更新 更多