You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gravity Forms通知条件逻辑如何调用Gravity Count短代码动态值

结论

Gravity Forms 通知的自定义条件逻辑值字段默认不解析短代码,直接填入[gravitywp_count]会被识别为普通文本,无法获取动态统计值,需要通过少量自定义代码实现需求,现有Gravity Count插件的配置不需要改动。


推荐实现方案(统计口径和现有短代码完全一致)

直接复用Gravity Count内置的统计逻辑,避免重复写数据库查询造成数值偏差,步骤如下:

  1. 添加可复用的库存统计函数到主题functions.php文件或者自定义代码片段插件中:
// 调用Gravity Count内置逻辑获取对应SKU的库存统计值
function gf_get_sku_stock($sku = 'SAMSUNGGALAXYS22') {
    // return=true参数让短代码直接返回统计值不输出,参数和你现有短代码完全匹配
    $count = do_shortcode("[gravitywp_count formid='4' filter_field2='162' filter_value2='{$sku}' filter_field='133' filter_value='1' return='true']");
    return intval($count);
}
  1. 选择以下任意一种方式接入通知判断逻辑:
    • 方式一(适配Custom Conditional Logic for Notifications插件):通过插件提供的钩子将动态统计值注入条件逻辑判断池,配置规则时直接选中该自定义值,设置「小于10」的触发规则即可:
    add_filter('gform_notification_logic_conditional_value', function($value, $form, $notification, $entry){
        if($form['id'] == 4){ // 仅对ID为4的表单生效
            $submit_sku = rgar($entry, '162'); // 读取当前提交条目的SKU字段值
            $value = gf_get_sku_stock($submit_sku);
        }
        return $value;
    }, 10, 4);
    
    • 方式二(原生钩子实现,无需依赖条件逻辑插件配置):直接在通知发送前做库存判断,不满足阈值就拦截通知:
    add_filter('gform_notification', function($notification, $form, $entry){
        // 替换为你自己的低库存通知ID,避免影响其他通知
        if($notification['id'] !== 'your_low_stock_notification_id') return $notification;
        
        $submit_sku = rgar($entry, '162');
        $stock = gf_get_sku_stock($submit_sku);
        
        // 库存≥10时终止通知发送
        if($stock >= 10) return false;
        return $notification;
    }, 10, 3);
    

注意点

  • 不要尝试直接在条件逻辑的值字段填写短代码,后台条件逻辑组件默认未开启短代码解析,会导致判断完全失效
  • 上述代码中的表单ID、字段ID、通知ID可根据实际业务调整,支持多SKU场景,无需为单个SKU单独写规则
  • 统计逻辑完全复用现有Gravity Count插件能力,和前端页面展示的计数数值完全同步,不会出现统计口径不一致的问题

内容的提问来源于stack exchange,提问作者Ercan ATAY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 13:54:22