在帖子内容中使用短代码触发Woocommerce钩子



我试图分配动作钩子woocommerce_single_product_summary到一个短代码,而不是do_action被使用在模板的固定位置,最终用户可以移动页面的整个single_product_summary部分自由在布局内,他们已经在古滕堡创建。

我在functions.php中有以下内容:

function getsummary_shortcode( $atts ) {
ob_start();
do_action( 'woocommerce_single_product_summary' );
$woocommerce_single_product = ob_get_clean();
return $woocommerce_single_product;
}
add_shortcode('getsummary','getsummary_shortcode');

然而,这似乎在一个无限循环中输出single_product_summary内容。

这真的有可能吗?我在这里发现了一些帖子试图做一些类似的事情,但没有人试图做我正在做的事情。

你可能需要在你的函数回调中注销并重新注册你的getsummary短码,以防止它被woocommerce_single_product_summary钩子调用

function getsummary_shortcode( $atts ) {
remove_shortcode('getsummary');
ob_start();
do_action( 'woocommerce_single_product_summary' );
$woocommerce_single_product = ob_get_clean();
add_shortcode('getsummary','getsummary_shortcode');
return $woocommerce_single_product;
}
add_shortcode('getsummary','getsummary_shortcode');

最新更新