我使用WooCommerce的插件"结帐字段编辑器"设置了3个自定义结帐字段。我已经设置了它,以便字段显示在电子邮件和订单屏幕上,但我需要将这些字段中的信息也发送到付款处理器,即 PayTrace。在与PayTrace插件开发人员交谈后,我有代码(下面的链接(用于添加发送到PayTrace的其他信息订单信息,但我不确定如何正确/安全地检索自定义结帐字段数据,以便可以包含它。
用于在发送到 PayTrace 的信息中添加其他数据的代码。 https://gist.github.com/vanbo/dc3d9bc8660a7de33aafb44dde3033fa
一般来说,Woocommerce订单元数据大多总是在前面加上下划线字符。例如,帐单名字meta_key
将为_billing_first_name
。
因此,您首先需要签入wp_postmeta
表中的最后一个 Woocommerce 订单(post_id
即订单 ID(,以获取将在以下代码中使用的正确必要的元键。
假设您的自定义元键是:
- 事件代码
_event_code
- 活动日期
_event_date
- 事件名称
_event_name
完成后,您将在以下代码中获取并设置该数据,如下所示:
add_filter( 'wc_paytrace_transaction_request', 'custom_data_paytrace_transaction_request', 10, 5 );
function prefix_filter_paytrace_transaction_request( $request_parameters, $order, $amount, $is_subscription, $is_paid_with_profile ) {
$event_code = $order->get_meta( '_event_code', true );
if( ! empty($event_code) )
$request_parameters['event_code'] = $event_code;
$event_date = $order->get_meta( '_event_date', true );
if( ! empty($event_date) )
$request_parameters['event_date'] = $event_date;
$event_name = $order->get_meta( '_event_name', true );
if( ! empty($event_name) )
$request_parameters['event_name'] = $event_name;
return $request_parameters;
}
您应该需要检查$request_parameters
的数组键是否正确。
代码进入函数.php活动子主题(或活动主题(的文件。它应该有效。