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
}
}
}