Ermittlung der Kundenkaufhistorie in WooCommerce
Bei der Entwicklung von WooCommerce-Plugins ist es oft notwendig zu überprüfen, ob ein Kunde bereits frühere Käufe getätigt hat. Diese Informationen können genutzt werden, um Angebote und Werbeaktionen entsprechend anzupassen.
Überprüfen der Kaufhistorie des Kunden
Um festzustellen, ob ein Kunde Einkäufe getätigt hat, kann eine schlanke und optimierte Funktion verwendet werden eingesetzt werden:
function has_bought( $value = 0 ) { if ( ! is_user_logged_in() && $value === 0 ) { return false; } global $wpdb; // Based on user ID (registered users) if ( is_numeric( $value) ) { $meta_key = '_customer_user'; $meta_value = $value == 0 ? (int) get_current_user_id() : (int) $value; } // Based on billing email (Guest users) else { $meta_key = '_billing_email'; $meta_value = sanitize_email( $value ); } $paid_order_statuses = array_map( 'esc_sql', wc_get_is_paid_statuses() ); $count = $wpdb->get_var( $wpdb->prepare(" SELECT COUNT(p.ID) FROM {$wpdb->prefix}posts AS p INNER JOIN {$wpdb->prefix}postmeta AS pm ON p.ID = pm.post_id WHERE p.post_status IN ( 'wc-" . implode( "','wc-", $paid_order_statuses ) . "' ) AND p.post_type LIKE 'shop_order' AND pm.meta_key = '%s' AND pm.meta_value = %s LIMIT 1 ", $meta_key, $meta_value ) ); // Return a boolean value based on orders count return $count > 0; }
Nutzung Beispiele
1. Auf Käufe registrierter Benutzer prüfen:
if( has_bought() ) echo '<p>You have already made a purchase</p>'; else echo '<p>Welcome, for your first purchase you will get a discount of 10%</p>';
2. Überprüfung auf Käufe von Gastbenutzern anhand der Rechnungs-E-Mail:
// Define the billing email (string) $email = '[email protected]'; if( has_bought( $email ) ) echo '<p>customer have already made a purchase</p>'; else echo '<p>Customer with 0 purchases</p>'
Durch den Einsatz dieser Funktion können Plugin-Entwickler leicht feststellen, ob ein Kunde eine Kaufhistorie in WooCommerce hat, und so gezielte Werbeaktionen und Rabatte für erweiterte Kunden ermöglichen Engagement.
Das obige ist der detaillierte Inhalt vonWie kann man feststellen, ob ein WooCommerce-Kunde eine Kaufhistorie hat?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!