Woocommerce产品短代码中的动态参数值

时间:2018-03-20 13:26:38

标签: php wordpress woocommerce shortcode product

背景: 我的网站销售各种风格的密钥标签(库存包含750多个),但标签只能以三个一组的形式出售,因为这是库存的到来方式。为了让客户只有购买三人一组的选项,我们创建了产品包或套装(包含3种风格的单独产品),我试图使用wordpress产品短代码替换添加到购物车按钮对于单标签样式。单个标签和相应的包具有相似的sku名称,差别是在包的sku末尾为k。

问题:  下面是我用来检查产品是否是单个标签的代码,以及我是否在插入添加到购物车的单个产品短代码。它不会在产品页面上显示短代码

function add_content_after_addtocart(){
    $current_product_id = get_the_ID();
    $product = wc_get_product( $current_product_id );
    $bundSku = $product->get_sku();
    $bundSku .= "k";

    if( $product->is_type('simple') ){
        echo do_shortcode('[product size="small" sku="{$bundSku}"]');
    }      
}

add_action('woocommerce_after_add_to_cart_button','add_content_after_addtocart');

1 个答案:

答案 0 :(得分:0)

替换此行:

echo do_shortcode('[product size="small" sku="{$bundSku}"]');

通过这个:

echo do_shortcode("[product size='small' sku='{$bundSku}']");

现在应该可以工作......所以你的功能代码将是:

add_action('woocommerce_after_add_to_cart_button','add_content_after_addtocart');
function add_content_after_addtocart() {
    $current_product_id = get_the_ID();
    $product = wc_get_product( $current_product_id );
    $bundSku = $product->get_sku();
    $bundSku .= "k";

    if ($product->is_type('simple')) {
        echo do_shortcode("[product size='small' sku='{$bundSku}']");
    }      
}

代码放在活动子主题(或主题)的function.php文件中。经过测试和工作。