2016-05-03 7 views
0

私は古い注文をメール郵便に送る方法を考え出しています。私は本当にこれについて多くの情報を見つけることができないので、私はいくつかの合理的な結果を得るまで、テストのものです。get_posts()を取得してそれを関数wordpressに渡す

<?php  
// Get all customer orders 
$customer_orders = get_posts(array(
    'numberposts' => -1, 
    'meta_key' => '_customer_user', 
    'meta_value' => get_current_user_id(), 
    'post_type' => wc_get_order_types(), 
    'post_status' => array_keys(wc_get_order_statuses()), 
)); 

var_dump($customer_orders); //to see what I'm working with 

echo "test"; 
require_once('../public_html/wp-content/plugins/woochimp/woochimp.php'); 

foreach($customer_orders as $cuord) { 
    $order = $cuord->ID; 
    echo ($cuord->post_date); 
    echo "<br>"; 
    on_completed($order); //I'm trying to run this as it should try to send some data to mailchimp. 
} 
?> 

私がon_completed関数を呼び出すと、foreachループが壊れているようです。私は間違って何をしていますか?

on_completed機能:(プラグインWooChimpから)

/** 
    * Subscribe on order completed status and send Ecommerce360 data 
    * 
    * @access public 
    * @param int $order_id 
    * @return void 
    */ 
    public function on_completed($order_id) 
    { 
     // Check if functionality is enabled 
     if (!$this->opt['woochimp_enabled']) { 
      return; 
     } 

     // Check if WC order class is available and MailChimp is loaded 
     if (class_exists('WC_Order') && $this->load_mailchimp()) { 

      // Do we need to subscribe user on completed order or payment? 
      $subscribe_on_completed = get_post_meta($order_id, 'woochimp_subscribe_on_completed', true); 
      $subscribe_on_payment = get_post_meta($order_id, 'woochimp_subscribe_on_payment', true); 

      foreach (array('auto', 'checkbox') as $sets_type) { 
       if ($subscribe_on_completed == $sets_type || $subscribe_on_payment == $sets_type) { 
        $this->subscribe_checkout($order_id, $sets_type); 
       } 
      } 

      // Check if we need to send order data or was it already sent 
      if (!$this->opt['woochimp_send_order_data'] || self::order_data_sent($order_id)) { 
       return; 
      } 

      // Get args 
      $args = $this->prepare_order_data($order_id); 

      // Send order data 
      try { 
       $this->mailchimp->ecomm_order_add($args); 
       update_post_meta($order_id, '_woochimp_ecomm_sent', 1); 
      } 
      catch (Exception $e) { 
       $this->woochimp_log_write($e); 
      } 
     } 
    } 
+0

私たちはon_completed関数をご覧ください:) –

+0

私は投稿に追加しましたが、今はちょっと複雑になるかもしれません。 この関数のプラグインはシームレスに機能しています。私はそれが動作すると仮定しますが、私はそれに間違った価値を与える可能性があります.. –

答えて

0

どのようなエラーメッセージのテキストあなたはon_completed場合($順)関数呼び出しがトライcatchブロック内に配置されていると思いますか?以下の例:

try { 
    on_completed($order); 
} catch (Exception $e) { 
    echo 'Caught exception: ', $e->getMessage(), "\n"; 
} 

また、Webサーバーerror_logを確認してください。あなたのコードが実行されると、何かエラーが見えますか?

+0

私は何かエラーが表示されないようです.. –

+0

また、商取引ログの設定を確認してください。無効になっている可能性があります。 on_completedエラー例外メッセージが表示されるようにする必要があります。 – Taras

+0

また、phpinfo()関数の出力からerror_logと関連する設定を投稿してください。error_log、log_errors、error_reporting – Taras

関連する問題