Woocommerce订单使用mycred支付网关时如何在公共函数内添加自定义规则
方案结论
完全可以在该公共函数中添加对应代码实现需求,具体实现逻辑如下:
实现步骤
- 拿到有效订单ID后,先实例化对应订单对象(WooCommerce场景下直接使用
wc_get_order($order_id)即可) - 调用订单对象的
get_payment_method()方法获取支付网关标识,判断是否等于mycred - 匹配成功后执行你需要的自定义业务逻辑即可
注意事项
- 不建议直接修改插件源文件,后续插件版本更新会覆盖自定义代码。优先确认插件是否提供了对应执行点位的钩子(action/filter),通过钩子挂载自定义逻辑是最优解。如果确实没有可用钩子,要提前做好修改记录,插件更新后手动补加逻辑即可。
- 代码中要增加订单对象判空逻辑,避免异常报错。
修改后代码示例
/* * @param int $order_id 订单ID * @return void */ if ($order_id){ if (is_object($order_id)){ $order_id = (isset($order_id->ID)) ? $order_id->ID : 0; } // 新增mycred支付网关专属逻辑 $order = wc_get_order($order_id); if ($order && $order->get_payment_method() === 'mycred') { // 此处编写你的自定义业务逻辑 } // 原有逻辑保留 $this->referral_refuse($order_id, $this->source_type); }
内容的提问来源于stack exchange,提问作者Nicholas Lee
相关产品推荐
相关产品推荐

