如何为WooCommerce货到付款订单设置默认交易ID(FREESAMPLE)
解决方案:为WooCommerce货到付款0元订单设置默认交易ID
可以通过WooCommerce的动作钩子,在订单创建阶段自动为符合条件的订单设置交易ID,具体代码实现如下:
/** * 为0元货到付款订单设置默认交易ID */ function set_default_transaction_id_for_free_cod_orders( $order ) { // 检查支付方式是否为货到付款(COD的支付方式ID为'cod') if ( 'cod' === $order->get_payment_method() ) { // 检查订单总额是否为0 if ( 0 === $order->get_total() ) { // 设置交易ID为指定值 $order->set_transaction_id( 'FREESAMPLE' ); // 保存订单修改 $order->save(); } } } // 挂钩到订单创建完成后的动作 add_action( 'woocommerce_checkout_create_order', 'set_default_transaction_id_for_free_cod_orders', 10, 1 );
说明:
- 上述代码利用
woocommerce_checkout_create_order钩子,在订单刚创建、还未保存到数据库时触发,确保交易ID在订单同步到QAD系统前就已设置。 - 代码中同时校验了支付方式和订单总额,即使后续COD的启用条件有变动,也能保证只有0元的COD订单才会被设置默认交易ID。
- 把这段代码添加到你的WordPress主题的
functions.php文件中,或者创建一个自定义插件来存放代码(推荐后者,避免主题更新导致代码丢失)。 - 设置完成后,新生成的符合条件的订单会自动带有
FREESAMPLE交易ID,无需手动修改。
内容的提问来源于stack exchange,提问作者Mitch McCrea
相关产品推荐
相关产品推荐

