ホームページ >バックエンド開発 >PHPチュートリアル >WooCommerce 顧客に購入履歴があるかどうかを確認するにはどうすればよいですか?
WooCommerce での顧客の購入履歴の確認
WooCommerce プラグインを開発する場合、多くの場合、顧客が以前に購入したかどうかを確認する必要があります。この情報を利用して、オファーやプロモーションを適宜調整できます。
顧客の購入履歴の確認
顧客が購入したかどうかを確認するには、軽量で最適化された関数を使用できます。雇用される:
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; }
使用法例
1.登録ユーザーによる購入の確認:
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.請求メールに基づいてゲスト ユーザーの購入を確認する:
// 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>'
この機能を使用することで、プラグイン開発者は顧客が WooCommerce に購入履歴があるかどうかを簡単に判断でき、強化された顧客向けに的を絞ったプロモーションや割引が可能になります。エンゲージメント。
以上がWooCommerce 顧客に購入履歴があるかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。