2016-10-03 4 views
1

私はWooCommerceで最初のWebhookをセットアップして、新しい注文があったときにデータベースサーバーに通知するようにしました。 Webhookがセットアップされ、私のサーバーで送受信されています - Webhookのペイロードを解析するPHPページを作成しようとしていないので、CRMのデータベースに注文の詳細を書き込むことができます。PHPを使用してWooCommerce Webhookペイロードを変換する

Webhookのコンテンツを取得できません。 WooCommerce内部のウェブフックのログによると、要求の詳細は、(私はコンテンツのJSONデータを省略しました)です:

Headers: 

user-agent: WooCommerce/2.6.4 Hookshot (WordPress/4.6.1) 
content-type: application/json 
x-wc-webhook-source: http://example.com/ 
x-wc-webhook-topic: order.created 
x-wc-webhook-resource: order 
x-wc-webhook-event: created 
x-wc-webhook-signature: xxxxxxxxxxxxxxxxxxx= 
x-wc-webhook-id: 3233 
x-wc-webhook-delivery-id: 94 

Content: 

{"order":{"id":3242,"order_number":3242,"order_key":"wc_order_57f1dbe5bcf03","created_at":"2016-10-03T04:17:41Z", ..... 

例えば、それは、POSTリクエストをやっているが、私はPOSTデータを取得することができていません

$postData = var_export($_POST, true);  
error_log($postData, 0); 

JSONデータは返されません。ウェブフックは、POSTリクエストで、適切なデータベースフィールド に挿入するJSONの各要素を解析する方法で

  • 助けを送信しているJSONデータを取得

    1. :私は助けを探しています
  • 答えて

    3

    これは最後に私のために働いていたものです:

    $webhookContent = ""; 
    
        $webhook = fopen('php://input' , 'rb'); 
        while (!feof($webhook)) { 
         $webhookContent .= fread($webhook, 4096); 
        } 
        fclose($webhook); 
    
    0
    <?php 
    while (have_posts()) : the_post(); 
    $order = new WC_Order($order_id); 
    $product = new WC_Product($order_id); 
    foreach($order->get_items() as $item) 
    { 
        $json['items'][] = array (
         'name' => $item['name'], 
         'quantity' => $item['qty'] 
    } 
    
    endwhile; 
    echo $result = json_format($json); 
    return $result; 
    ?> 
    
    関連する問題