我是使用 webhook 和 API 的新手,所以有点超出我的深度,真的需要一些帮助来创建带有自定义有效负载的自定义 webhook。阅读了很多并尝试了不同的功能,看看我是否能理解它,但它们并没有给我想要的结果,老实说,现在让我感到困惑。有人可以解释一下,如何使用 order.complete 的自定义有效负载创建 webhook 主题或功能
我试图达到的结果是发送少量数据,在以下数组中
‘REF’ = Order key,
‘NAME’ = Users full name,
‘EMAIL’ = Billing Email Address,
‘PROD’ = prodcodeID, (custom product field setup)
‘VER’ = versionID, (custom product field setup)
我还需要添加一个添加了 90 天的日期。
‘DATE’ = completed_at +90 days in the following format Y-m-d
任何帮助或指导将不胜感激。
到目前为止,我已经创建了自定义字段,它们可以正确显示在产品管理页面上并存储数据,使用以下
// Display Fields
add_action( 'woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields' );
// Save Fields
add_action( 'woocommerce_process_product_meta', 'woo_add_custom_general_fields_save' );
function woo_add_custom_general_fields() {
global $woocommerce, $post;
echo '<div class="options_group">';
// Custom fields will be created here...
// Number Field
woocommerce_wp_text_input(
array(
'id' => 'versionID',
'label' => __( 'Version', 'woocommerce' ),
'placeholder' => '',
'description' => __( 'Enter the custom value here.', 'woocommerce' ),
'type' => 'number',
'custom_attributes' => array(
'step' => 'any',
'min' => '0'
)
)
);
// Number Field
woocommerce_wp_text_input(
array(
'id' => 'productCodeID',
'label' => __( 'Product code', 'woocommerce' ),
'placeholder' => '',
'description' => __( 'Enter the custom value here.', 'woocommerce' ),
'type' => 'number',
'custom_attributes' => array(
'step' => 'any',
'min' => '0'
)
)
);
echo '</div>';
}
function woo_add_custom_general_fields_save( $post_id ){
// Number Field
$woocommerce_number_field = $_POST['_version_ID'];
if( !empty( $woocommerce_number_field ) )
update_post_meta( $post_id, '_version_ID', esc_attr( $woocommerce_number_field ) );
// Number Field
$woocommerce_number_field = $_POST['_product_Code_ID'];
if( !empty( $woocommerce_number_field ) )
update_post_meta( $post_id, '_product_Code_ID', esc_attr( $woocommerce_number_field ) );
}
当尝试使用以下内容调用其中一个字段时,我将其显示在 woocommerce order.created webhook 的标准 JSON 输出中,但它似乎没有任何价值
function my_custom_orders_api_fields( $order_data, $order ) {
$order_data['VER'] = get_post_meta( $order->id, '_version_ID', true );
return $order_data;
}
add_filter( 'woocommerce_api_order_response', 'my_custom_orders_api_fields', 10, 2 );
JSON 输出
"VER":"",
任何帮助将不胜感激。