3

私は 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 ) );
}

以下のフィールドの 1 つを呼び出そうとすると、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":"",

どんな援助でも大歓迎です。

4

0 に答える 0