1

我基本上是在 WordPress 中为 woocommerce 创建一个基于积分的系统。这基于手动添加的 usermeta。(想法是,人们回收产品以获得积分,然后使用积分在共享用户数据的单独 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 回答