php WooCommerce产品附加信息简码

v9tzhpje  于 2023-06-28  发布在  PHP
关注(0)|答案(1)|浏览(84)

我是新的WooCommerce和寻找一个解决方案来显示产品属性在一个帖子页面。我做了研究和一些测试,但似乎没有工作。
理想情况下,我想使用简码获取产品ID,并在我的帖子页面上显示他的所有产品属性。类似于[product_page id="99" display_only_attributes ]

cigdeys3

cigdeys31#

下面是在自定义短代码中获取产品属性的方法,您将在其中将产品ID定义为短代码参数**id**。
功能代码:

if ( ! function_exists( 'display_product_additional_information' ) ) {

    function display_product_additional_information($atts) {

        // Shortcode attribute (or argument)
        $atts = shortcode_atts( array(
            'id'    => ''
        ), $atts, 'product_additional_information' );

        // If the "id" argument is not defined, we try to get the post Id
        if ( ! ( ! empty($atts['id']) && $atts['id'] > 0 ) ) {
           $atts['id'] = get_the_id();
        }
        
        // We check that the "id" argument is a product id
        if ( get_post_type($atts['id']) === 'product' ) {
            $product = wc_get_product($atts['id']);
        }
        // If not we exit
        else {
            return;
        }

        ob_start(); // Start buffering

        do_action( 'woocommerce_product_additional_information', $product );

        return ob_get_clean(); // Return the buffered outpout
    }

    add_shortcode('product_additional_information', 'display_product_additional_information');

}

代码放在活动子主题(或活动主题)的functions.php文件中。测试和作品。

短码使用*(已更新)*

1.具有定义的产品ID:

[product_additional_information id='37']

在php中:

echo do_shortcode("[product_additional_information id='37']");

1.在现有产品页面 (例如,当“附加信息”产品选项卡被删除时)

[product_additional_information]

在php中:

echo do_shortcode("[product_additional_information]");

你会得到这样的东西:

相关问题