2017-02-15 4 views
2

Ich habe dies für ein paar Stunden versucht, mit anderen Code & Lesen jedes Dokument auf Buchung, die ich finden kann - aber ich kann nicht herausfinden, wie genau ich das tun .WooCommerce Buchungen: Erstellen Sie eine Buchungsanfrage programmatisch

Meine größte Inspiration kommt von der WooCommerce Booking Doc, aber das fügt nur eine Folgebuchung zu einer bestehenden Bestellung hinzu. Aber wie mache ich es von Grund auf neu?

Ich habe Folgendes versucht, aber kann es wirklich nicht funktionieren.

  1. I erzeugen eine neue Bestellung mit:

    $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'); 
    
  2. ich eine Buchung von

    jetzt
    $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) 
    
  3. Und hier bin ich fest, was muss ich tun, schaffen? Ich denke, ich muss die Buchungs-ID mit der Bestellung von 1 verbinden - aber ich bin mir nicht sicher, wie.

Was mache ich falsch?

Danke.

Antwort

3

In Ihrem Code definieren Sie zuerst dieses Array (mit einem fehlenden ; am Ende des Arrays).

Dann anstelle der Verwendung $new_booking_data definierte Variable einfach in Ihrer Funktion create_wc_booking(), Sie es ein leeres Array zuweisen, dass NULL-Werte der Code oben. So haben Sie es einrichten wie folgt aus:

// 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); 

Oder können Sie die Werte setzen, auf diese Weise:

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

Dies sollte jetzt besser ... hoffe ich.

+0

Hallo danke für deinen Kommentar, ich denke, du hast mich ein wenig missverstanden - mein Problem war, wie man eine WooCommerce Bestellung und eine Woocommerce Buchung verbindet. Und als eine zusätzliche Frage, wenn Sie auch in den WooCommerce Produkt-Add-ons hinzufügen, wie füge ich das auch zum Booking-Produkt hinzu? – Mac

Verwandte Themen