在WooCommerce中输出特定产品类别的自定义短代码

时间:2017-08-17 11:06:29

标签: php wordpress woocommerce categories shortcode

我正在尝试在我的商店页面上为我的产品添加一个额外的按钮,但仅限于特定类别。我已经走到了这一步,但我似乎无法正确地说出来。

if (!function_exists('add_accessory_button')){
function add_accessory_button() {
  global $product;
  $product_cat = $product->product_cat;

  if( has_term( 'dealqualify',$product_cat ) && in_the_loop() ) {
    $link = get_post_meta( $product->ID, ‘acc_link’, true );
    echo do_shortcode('<br>[button link="' . esc_attr($link) . '"]View Accessory[/button]');
} }
add_action('woocommerce_after_shop_loop_item','add_accessory_button');
}

任何帮助确定我的错误都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您的代码中存在很多错误

您需要以这种方式设置 has_term() 以使其正常工作:

has_term( 'dealqualify', 'product_cat', $product->get_id() )

同样对于产品ID,请按以下方式执行: $product->get_id() ...我也尝试纠正其他错误...

所以你的代码应该是这样的:

if ( ! function_exists('add_accessory_button')){

    function add_accessory_button() {
        global $product;
        if( has_term( 'dealqualify', 'product_cat', $product->get_id() ) && in_the_loop() ) {
            $link = get_post_meta( $product->get_id(), 'acc_link', true );
            echo '<br>' . do_shortcode("[button link='$link']View Accessory[/button]");
    }
    add_action('woocommerce_after_shop_loop_item','add_accessory_button');
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

现在应该可以了......