代码之家  ›  专栏  ›  技术社区  ›  LucSpan

在短代码中动态插入WoomCommerce产品ID

  •  0
  • LucSpan  · 技术社区  · 6 年前

    设立

    我和Elementor有一家Woomcommerce商店。

    我使用一个elementor单个产品页面模板为每个产品生成产品页面。

    我想用 this plug-in 在每个产品页面上显示一个经常一起购买(FBT)元素。

    要显示FBT元素,插件的创建者提供以下短代码: [premmerce_get_bundles_by_main_product_id id="X"] 在哪里 X 是WooCommerce产品ID。


    问题

    这个 X 不是动态的。

    如果我填写产品ID,例如产品 2 在短代码中,elementor产品页面模板将显示产品的FBT产品 为我的每一个产品。


    问题

    我能做 X 动态的?优选地, X 自动设置为正在访问的页面的产品ID。

    2 回复  |  直到 6 年前
        1
  •  1
  •   xDiff    6 年前

    您可以尝试扩展短代码:

    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,请使用一个名为 Code Snippets

        2
  •  1
  •   jasie Dennis Mutuma    6 年前

    如果输出这样的短代码,则只能在短代码中使用动态数据:

    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/