php - 在帖子内容中使用短代码触发 Woocommerce Hook

标签 php wordpress woocommerce output-buffering

我正在尝试将操作 Hook woocommerce_single_product_summary 分配给短代码,以便最终用户可以在他们的布局中自由移动页面的整个 single_product_summary 部分,而不是在模板中的固定位置使用 do_action在古腾堡创建。

我在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 Hook 调用

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');

关于php - 在帖子内容中使用短代码触发 Woocommerce Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75923520/

相关文章:

php - MySql:如果值存在 UPDATE else INSERT

php - stream_set_write_buffer 或 PHP 中的文件锁定?

mysql - #1273 - 未知排序规则 : 'utf8mb4_unicode_ci' cPanel

css - Bootstrap 3 子菜单水平布局不出现在下拉列表下方

css - Clean Retina Theme #WordPress,如何删除页眉和页脚背景图案?

php - 在 WooCommerce 的主页上隐藏 "out of stock"产品

php - CSS 网格未对齐

php - 为什么 codeigniter 等不允许获取变量

php - WooCommerce 添加到购物车自定义重定向特定产品 ID

wordpress - 我在 woocommerce 中遇到此错误 "Gateway Disabled: PayPal does not support your store currency"