ユーザーが購入したすべての製品を表示する方法–購入履歴
公開: 2020-08-15 ユーザーが購入した製品を表示したり、特定のユーザーのすべての購入履歴を表示したりする場合は、この投稿で共有されているコードを使用してこれを実現できます。 理想的には、すべての顧客の注文または購入履歴がWordPressデータベースのpostsテーブル( wp_posts
)に保存されます。 したがって、 get_post().
例を使用して説明するように機能します。
ユーザーが購入したWooCommerceディスプレイ製品
顧客が購入した製品を表示する最初のステップでは、顧客の詳細を取得する必要があり、現在のユーザーのオブジェクトを返すwp_get_current_user()
関数を使用できます。
ステップ1:顧客履歴を表示してユーザーの詳細を取得する関数を作成する
たとえば、関数と現在のユーザーの詳細を次のように取得します。
関数njengah_get_customer_purchase_history(){ //現在のユーザーオブジェクトを取得します $ current_user = wp_get_current_user(); //ユーザーが有効かどうかを確認します if(0 == $ current_user-> ID)return; }
wp_get_current_user()
関数はユーザーオブジェクトを取得します。代わりに、現在のユーザーIDを直接取得するget_current_user_id()
のような関数を使用することもできます。
ステップ2:完了したユーザー注文と処理中のユーザー注文の両方を取得する
このステップでは、 get_posts()関数を使用して、最初のステップで取得したユーザーIDでargsを渡す必要があります。この場合、ユーザーIDは$ argsのmeta_valueとして渡されます。 したがって、get_posts()関数に渡す引数配列を作成することから始めます。
// $ args配列を作成します $ args = array( 'numberposts' => -1 'meta_key' => '_ customer_user'、 'meta_value' => $ current_user-> ID、 'post_type' => wc_get_order_types()、 'post_status' => array_keys(wc_get_is_paid_statuses())、 );
引数を作成した後、次のように$ args配列をパラメーターとしてget_posts()関数に渡しません。
$ customer_orders = get_posts($ args);
次のステップに進む前に、ステップ1とステップ2のコードを結合します。結合されたコードは、次のようになります。
関数njengah_get_customer_purchase_history(){ //現在のユーザーオブジェクトを取得します $ current_user = wp_get_current_user(); //ユーザーが有効かどうかを確認します if(0 == $ current_user-> ID)return; // $ args配列を作成します $ args = array( 'numberposts' => -1 'meta_key' => '_ customer_user'、 'meta_value' => $ current_user-> ID、 'post_type' => wc_get_order_types()、 'post_status' => array_keys(wc_get_is_paid_statuses())、 ); // $ argsをget_posts()関数に渡します $ customer_orders = get_posts($ args); }
このステップでは、前の顧客のすべての購入履歴を配列として取得し、次のステップで製品IDを取得するためにループします。
ステップ3:顧客の注文と返品IDをループして表示できるようにする
このステップでは、前のステップで取得した注文をループして、製品IDを含む配列を返す必要があります。 foreachループを使用して次のコードを使用してこれを行うことができます。
//注文をループして、IDを返します if(!$ customer_orders)return; $ product_ids = array(); foreach($ customer_orders as $ customer_order){ $ order = wc_get_order($ customer_order-> ID); $ items = $ order-> get_items(); foreach($ items as $ item){ $ product_id = $ item-> get_product_id(); $ product_ids [] = $ product_id; } } $ product_idsを返します。
これで、ステップ1、ステップ2、およびステップ3のコードを組み合わせて、次のような完全なコードを作成できます。
関数njengah_get_customer_purchase_history(){ //現在のユーザーオブジェクトを取得します $ current_user = wp_get_current_user(); //ユーザーが有効かどうかを確認します if(0 == $ current_user-> ID)return; // $ args配列を作成します $ args = array( 'numberposts' => -1 'meta_key' => '_ customer_user'、 'meta_value' => $ current_user-> ID、 'post_type' => wc_get_order_types()、 'post_status' => array_keys(wc_get_is_paid_statuses())、 ); // $ argsをget_posts()関数に渡します $ customer_orders = get_posts($ args); //注文をループして、IDを返します if(!$ customer_orders)return; $ product_ids = array(); foreach($ customer_orders as $ customer_order){ $ order = wc_get_order($ customer_order-> ID); $ items = $ order-> get_items(); foreach($ items as $ item){ $ product_id = $ item-> get_product_id(); $ product_ids [] = $ product_id; } } $ product_idsを返します。 }
ステップ4:関数リターンのテスト
このステップでは、次のようにprint_r()関数を使用して、ステップ3の関数からデータが表示されているかどうかを確認できます。
print_r(njengah_get_customer_purchase_history());
すべての手順を正しく実行すると、 wp_headアクションフックにデータ表示を追加した下の画像に示すように、データが表示されるはずです。
これで、このデータをショートコードで使用したり、テーマやプラグインの開発で使用したりして、購入履歴を好きな場所に表示できます。
結論
この投稿では、ユーザーが購入した商品をWooCommerceで段階的に表示する方法を説明しました。 このコードの理想的な使用法は、現在の注文商品を以前に注文した商品と比較する任意のロジックで使用できます。 ほとんどの実際のアプリケーションでは、以前の注文またはクロスセルとアップセルに基づく割引の割り当てが含まれます。
同様の記事
- WordPressページの更新時にリダイレクトする方法»ページの更新PHPの検出
- 実用的な例でWordPressのSlugによって投稿IDを取得する方法
- WooCommerceで現在の製品カテゴリ名を取得する方法
- WordPressでログインしたユーザー情報を取得する方法
- WooCommerceで商品を非表示にする方法、またはカテゴリや役割で商品を非表示にする方法
- WordPressにログインしていない場合にユーザーをリダイレクトする方法»ページリダイレクト
- プラグインなしでプログラムでWordPress管理メニュー項目を削除する方法
- WooCommerceの顧客またはユーザーの役割ごとに管理バーを非表示にする方法
- プラグインを使用せずにWordPressで番号のページネーションを作成する方法
- WoocommerceでReturnto ShopLinkを変更する方法
- 確認なしのWooCommerceログアウト:「ログアウトしてもよろしいですか?」を削除する方法
- WordPressで現在のユーザーロールを取得する方法とロールを表示する
- プラグインなしでWordPressページをリダイレクトする方法は?
- プラグインがWordPressでアクティブかどうかを確認する方法[3つの方法]
- WordPressにサイドバーを追加する方法»究極のステップバイステップガイド
- プラグインを使用せずにWordPressに正常にログインした後にユーザーをリダイレクトする方法
- WordPressテーマにサイドバーを登録する方法»ステップバイステップ[ヘッダーウィジェットの例]
- WooCommerceにログインした後にカートにリダイレクトする方法
- ユーザーがWordPressにログインしているかどうかを確認する方法
- WooCommerceで在庫状況テキストを表示する方法»在庫ありと在庫切れ