我正在try 将操作挂钩WooCommerce_Single_PRODUCT_SUMMARY分配给一个短代码,以便最终用户可以在他们在Gutenberg中创建的布局中自由地移动页面的整个Single_PRODUCT_SUMMARY部分,而不是在模板中的固定位置使用do_action.

我在unctions.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');

Php相关问答推荐

PHP DateInterval天数不一致

如何让PHP变量跨越多个脚本调用?

从含有特殊字符的ANSI文本文件中读取数据是在移值,为什么?

从WooCommerce订单状态更改更新用户自定义元数据

当主页和帖子的缩略图相同时,如何减少主页和帖子的缩略图

莫德克斯.当我try 使用pThumb为手机压缩图像时,没有任何react

从两个日期创建日期范围,然后为范围中的每个日期复制子数组

模式 bootstrap 未显示

表单提交返回空白页

从 WooCommerce 购物车中删除总计部分,同时保留小计行

将可编辑的计费自定义字段添加到 WooCommerce 管理单个订单

PHP 创建 CSV 文件并用波斯语写入

PHP - 计算非数值数组

如何使用动态变量定义 bind_result?

在 Laravel、Vuejs 和 Inertia 中配置 TypeScript 的问题

我怎样才能在 .htaccess 中有 2 个参数?

无法在 Laravel 10 中安装 jenssegers/mongodb

如何在运行 update_post_meta 后更新 wp_wc_product_attributes_lookup 表?

如何通过本地主机在同一台 PC 上同时运行 Microsoft IIS 和 WAMP

fopen 功能不断向我发送我重新加载网页时已发布的重复版本的表单