So verknüpfen Sie WooCommerce-Gastbestellungen nach der Registrierung mit dem Kundenkonto

Lesezeit: 1 Minute

Matins Benutzeravatar
Matinee

Unser Szenario ist:

Der Gastbenutzer betritt die Website und gibt eine oder mehrere Bestellungen auf, ohne sich registrieren zu müssen. Und nach einer Weile beschließt er, sich auf der Website zu registrieren.

Wie verknüpfe ich nun Gastbestellungen nach der Registrierung mit dem Kundenkonto?

Ich verwende den folgenden Code, dieser Code funktioniert jedoch nur für Benutzer, die sich bereits registriert haben, sich aber zum Zeitpunkt des Kaufs nicht angemeldet haben. Irgendein Rat?

//assign user in guest order
add_action( 'woocommerce_new_order', 'action_woocommerce_new_order', 10, 1 );
function action_woocommerce_new_order( $order_id ) {
    $order = new WC_Order($order_id);
    $user = $order->get_user();
    
    if( !$user ){
        //guest order
        $userdata = get_user_by( 'email', $order->get_billing_email() );
        if(isset( $userdata->ID )){
            //registered
            update_post_meta($order_id, '_customer_user', $userdata->ID );
        }else{
            //Guest
        }
    }
}

Du kannst den … benutzen woocommerce_created_customer Action-Hook und der wc_update_new_customer_past_orders() Funktion

Sie erhalten also:

function action_woocommerce_created_customer( $customer_id, $new_customer_data, $password_generated ) {
    // Link past orders to this newly created customer
    wc_update_new_customer_past_orders( $customer_id );
}
add_action( 'woocommerce_created_customer', 'action_woocommerce_created_customer', 10, 3 ); 

1450730cookie-checkSo verknüpfen Sie WooCommerce-Gastbestellungen nach der Registrierung mit dem Kundenkonto

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy