Speichern von Daten in einem WooCommerce-Sitzung

Versuche ich zu sparen, mit einem einfachen text-Eingabe für das WooCommerce-Sitzung. Die session wird erstellt, wenn ein Benutzer fügt etwas zu Ihrem Warenkorb.

Mein input-Feld vorhanden ist, in benutzerdefinierten Seitenvorlage gesetzt wird in der Benutzer-flow nachdem der Wagen aber vor der Kasse: Warenkorb > mein template > Kasse.

So weit

Einfaches Formular zum erfassen von Daten (benutzerdefinierte Vorlage-Datei)

<form name="group" method="post" class="checkout woocommerce-checkout" action="http://localhost:/site.dev/my-template">
    <div class="group-order">
        <p class="form-row form-row woocommerce-validated" id="create_new_group_field">
            <label for="create_new_group" class="">Join an existing group</label>
            <input type="text" class="input-text " name="create_new_group" id="create_new_group">
        </p>
    </div>
</form>

Empfangen und Daten einstellen (ich habe Schwierigkeiten, herauszufinden, Wann/wie diese laufen. auf meiner eigenen Seite)

UPDATE
Ich habe den code auf meiner Seite Vorlage, damit die Seite Prozesse selbst und dann wieder direkt an die Kasse.

Funktion set_and_save_input_to_session() {

if( !is_admin( ) ) {
    //User input
    if( ! empty( $_POST['create_new_group'] ) ) {
        $group_input_value =  $_POST['create_new_group']; 

        //Set session and save data
        WC()->session->set( 'group_order_data', $group_input_value );

        wp_redirect( 'http://localhost:28/site.dev/checkout' );
        exit();
    }
}
get_header();

add_action('woocommerce_checkout_process', 'set_and_save_input_to_session');

Abrufen und speichern von Daten

function retrieve_and_save_group_input_value_to_order_meta() {
    $retrived_group_input_value = WC()->session->get( 'group_order_data' );

    update_post_meta( $order_id, '_create_new_group', $retrived_group_input_value );
}
add_action('woocommerce_checkout_update_order_meta', 'retrieve_and_save_group_input_value_to_order_meta');

Derzeit arbeite ich meinen Weg durch was sind mir, komplexere Lösungen und daher würde ich es begrüßen, wenn jemand könnte darauf hinweisen, keine größeren Mängel mit meinem Prozess so weit.

UPDATE

Kann ich bestätigen, dass das Formular, das Daten empfängt und dass die WC()->session->set ist die Einstellung der Daten. (Dank an @Firefog für die Annahme, die Verwendung der $_SESSION global)

Nach weiteren Ermittlungen und die Suche nach dem richtigen Ort, um var_dump die session-Daten fand ich, dass die Daten, die festgelegt wurde, um die Sitzung mit meiner ursprünglichen Methode.

Den Daten gesetzt ist, aber ich kann nicht sehen, warum die Daten nicht speichern, um die Reihenfolge.

  • warum würden Sie wollen, um Sie auf Ihre eigene Seite? Ich kann sehen, dass Sie das Formular in die Seite...
  • Danke, wegen dieser Frage selbst ich es geschafft mein Problem zu lösen
InformationsquelleAutor JohnMcCarthy | 2015-12-12
Schreibe einen Kommentar