2017-02-15 15 views
2

私はこれを数時間ずっと試してみました。別のコード&予約可能なすべての文書を読むことができます - しかし、私はこれを正確にどのように行うのか分かりません。 。WooCommerce予約:プログラムで予約注文を作成

私の最大のインスピレーションはWooCommerce Booking Docですが、これは既存の注文へのフォローアップ予約を追加するだけです。しかし、どうやって最初からそれをやっていくのですか?

私は以下を試しましたが、本当にうまく動作しません。

  1. 私が使用して新しい秩序を生成:私は、私がこだわっている

    $new_booking_data = array(
         'start_date' => strtotime('+1 week', $prev_booking->start), // same time, 1 week on 
         'end_date' => strtotime('+1 week', $prev_booking->end), // same time, 1 week on 
         'resource_id' => $prev_booking->resource_id, // same resource 
         'parent_id' => $booking_id 
    ) 
    create_wc_booking($product_id, $new_booking_data = array(), $status =  'confirmed', $exact = false) 
    
  2. そしてここで予約を作成

    $address = array(
        'first_name' => 'TestFirst', 
        'last_name' => 'TestLast', 
        'company' => 'Overflow', 
        'email'  => '[email protected]', 
        'phone'  => '777-777-777-777', 
        'address_1' => '35 Main Street', 
        'address_2' => '', 
        'city'  => 'Net York', 
        'state'  => 'NY', 
        'postcode' => '2323', 
        'country' => 'US' 
    
    $order = wc_create_order(); 
    $order->set_address($address, 'billing'); 
    $order->set_address($address, 'shipping'); 
    
  3. を、私は今何をすべきかを持っているのですか?私は1からの注文と予約IDを結びつけなければならないと思っています。

私は間違っていますか?

ありがとうございました。

答えて

3

コードでは、この配列を最初に定義しています(配列の末尾には;がありません)。代わりに、あなたの関数create_wc_booking()に単に$new_booking_data定義された変数を使用しての

はその後、あなたはそれに上記のコードをヌル空の配列を、割り当てています。

// Defined array variable 
$new_booking_data = array(
     'start_date' => strtotime('+1 week', $prev_booking->start), // same time, 1 week on 
     'end_date' => strtotime('+1 week', $prev_booking->end), // same time, 1 week on 
     'resource_id' => $prev_booking->resource_id, // same resource 
     'parent_id' => $booking_id 
); // <= Missing ";" HERE 

// Define this variables outside your function 
$status = 'confirmed'; 
$exact = false; 

// Now you just put your variables simply like this 
create_wc_booking($product_id, $new_booking_data, $status, $exact); 

それとも、あまりにもこのように値を入れることができます:あなたはちょうどこのようにそれを設定する必要が

create_wc_booking($product_id, $new_booking_data, 'confirmed', false); 

これは、より良い動作するようになりました...私は願っています。

+0

あなたのコメントをありがとう、私は少し私を誤解したと思う - 私の問題は、WooCommerceの注文とWoocommerceの予約を接続する方法でした。 さらに、WooCommerceプロダクトアドオンを追加する場合は、そのプロダクトをどのように追加するのですか? – Mac