动态插入WooCommerce产品ID在短代码(Insert WooCommerce product

2019-11-05 11:07发布

设定

我有一个Elementor商店WooCommerce。

我使用的是Elementor单品页面模板来生成每个产品的产品页面。

我想利用这个插件可以显示每个产品页面上一起经常买(FBT)元素。

要显示FBT元件,的创建者的插件提供以下简码: [premmerce_get_bundles_by_main_product_id id="X"]其中X是一个WooCommerce产品ID。


问题

X是不是动态的。

如果我填写如产品的产品ID 2中短码,该Elementor产品页面模板将显示产品的FBT产品2对于我的每一个产品。


我可以让X动态? 优选的是, X会自动设置为正在访问的页面的产品ID。

Answer 1:

你可以尽量延长短代码:

function so_extend_frequent_bought_shortcode() {
    global $product;
    $id = $product->get_id();

    return do_shortcode( '[premmerce_get_bundles_by_main_product_id id="' . $id . '"]');
}
add_shortcode( 'my_new_shortcode', 'so_extend_frequent_bought_shortcode' );

现在,你只需要把[my_new_shortcode]在您的文章。 如果你不能编辑您的functions.php,使用一个名为插件代码段



Answer 2:

你只能如果你输出的简码像这样使用动态数据的简:

global $product;
$id = $product->get_id();

echo do_shortcode( '[premmerce_get_bundles_by_main_product_id id="' . $id . '"]');

看到https://developer.wordpress.org/reference/functions/do_shortcode/



文章来源: Insert WooCommerce product id dynamically in shortcode