Détermination de l'historique des achats des clients dans WooCommerce
Lors du développement de plugins WooCommerce, il devient souvent nécessaire de vérifier si un client a effectué des achats précédents. Ces informations peuvent être exploitées pour adapter les offres et les promotions en conséquence.
Vérification de l'historique des achats du client
Pour déterminer si un client a effectué des achats, une fonction légère et optimisée peut être employé :
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; }
Exemples d'utilisation
1. Vérification des achats des utilisateurs enregistrés :
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. Vérification des achats des utilisateurs invités en fonction de l'e-mail de facturation :
// 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>'
En utilisant cette fonction, les développeurs de plugins peuvent facilement déterminer si un client a un historique d'achats dans WooCommerce, permettant ainsi des promotions et des remises ciblées pour les clients améliorés. fiançailles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!