1

基本的に、WordPress で woocommerce 用のポイント ベースのシステムを作成しています。これは、手動で追加されたユーザーメタに基づいています。(アイデアは、人々が製品をリサイクルしてポイントを獲得し、ポイントを使用して、ユーザーデータを共有する別のwoocommerceで製品を購入することです).

ポイントが足りない場合は無効にするか、製品を購入した後にユーザーが残した金額を合計するチェックアウトを作成しました(この段階では少し脆弱かもしれませんが、ポイントは別です)。

私が抱えている問題は、購入後にユーザー メタを更新することです。つまり、すべてのユーザーのユーザー テーブルには、管理者のみが表示できる「ポイント」というボックスがあります。これは、(現在のポイント - 注文合計) という新しい式で更新する必要があります。これを実装する方法や、これが実際に機能するかどうかわからないコードを次に示します.注文が「配置」された後に発生する「ありがとうページ」にこれを植えました

        <?php 

        $user_id = wp_get_current_user();
        $pointsafterorder = $current_user->points - $woocommerce->cart->total;

        // will return false if the previous value is the same as $new_value
        update_user_meta( $user_id, $current_user->points, $pointsafterorder );

         ?>

誰かが修正、質問、または考えを持っている場合は、私に知らせてください。

ありがとうリッチ

4

1 に答える 1

1

あなたが持っているコードはユーザーIDを取得していません。

まず、現在のユーザーを次のようにクエリする必要があります。

 $current_user = wp_get_current_user();

しかし、あなたが欠けているビットは次のとおりです。

 echo $current_user->ID;

したがって、適応されたコードは次のようになります。

$current_user = wp_get_current_user();
$pointsafterorder = $current_user->points - $woocommerce->cart->total;
update_user_meta( $current_user->ID, $current_user->points, $pointsafterorder );
于 2013-08-05T08:27:14.017 に答える