Verfasste Forenbeiträge

Ansicht von 2 Antworten – 1 bis 2 (von insgesamt 2)
  • Thread-Starter schnallenbrenner

    (@schnallenbrenner)

    kann damit geschlossen werden

    Thread-Starter schnallenbrenner

    (@schnallenbrenner)

    Das hat bestens geklappt. Vielen Dank!

    add_action( 'woocommerce_checkout_update_order_meta', 'auto_assign_customer_data_to_order' );
    
    function auto_assign_customer_data_to_order( $order_id ) {
        // Prüfe, ob bei der Bestellung eine E-Mail-Adresse angegeben wurde.
        if ( isset( $_POST['billing_email'] ) && !empty( $_POST['billing_email'] ) ) {
            $user = get_user_by( 'email', trim( $_POST['billing_email'] ) );    
            // Wenn ein Benutzer mit dieser E-Mail existiert, ordne die Kundendaten der Bestellung zu.
            if ( $user ) {
                $order = wc_get_order( $order_id );
    
                // Lade und setze Rechnungsadresse.
                $order->set_billing_first_name( get_user_meta( $user->ID, 'billing_first_name', true ) );
                $order->set_billing_last_name( get_user_meta( $user->ID, 'billing_last_name', true ) );
                $order->set_billing_company( get_user_meta( $user->ID, 'billing_company', true ) );
                $order->set_billing_address_1( get_user_meta( $user->ID, 'billing_address_1', true ) );
                $order->set_billing_address_2( get_user_meta( $user->ID, 'billing_address_2', true ) );
                $order->set_billing_city( get_user_meta( $user->ID, 'billing_city', true ) );
                $order->set_billing_postcode( get_user_meta( $user->ID, 'billing_postcode', true ) );
                $order->set_billing_state( get_user_meta( $user->ID, 'billing_state', true ) );
    
                // Füge weitere Rechnungsdaten wie Adresszeilen, Stadt, Postleitzahl, Land, Telefon usw. hinzu.
    
                // Lade und setze Lieferadresse (falls benötigt).
                $order->set_shipping_first_name( get_user_meta( $user->ID, 'shipping_first_name', true ) );
                $order->set_shipping_last_name( get_user_meta( $user->ID, 'shipping_last_name', true ) );
                $order->set_shipping_company( get_user_meta( $user->ID, 'shipping_company', true ) );
                $order->set_shipping_address_1( get_user_meta( $user->ID, 'shipping_address_1', true ) );
                $order->set_shipping_address_2( get_user_meta( $user->ID, 'shipping_address_2', true ) );
                $order->set_shipping_city( get_user_meta( $user->ID, 'shipping_city', true ) );
                $order->set_shipping_postcode( get_user_meta( $user->ID, 'shipping_postcode', true ) );
                $order->set_shipping_state( get_user_meta( $user->ID, 'shipping_state', true ) );
                // Füge weitere Lieferdaten wie Adresszeilen, Stadt, Postleitzahl, Land usw. hinzu.
    
                // Speichere die Änderungen an der Bestellung.
                $order->save();
            }
        }
    }
Ansicht von 2 Antworten – 1 bis 2 (von insgesamt 2)