Wordpress通过woocommerce结帐流程更新用户元

时间:2013-07-31 12:52:42

标签: wordpress woocommerce meta points

我基本上是在WordPress中为woocommerce创建一个基于点的系统。这基于手动添加的usermeta。 (想法是,人们回收产品以获得积分,然后使用积分在分享用户数据的单独的woocommerce上购买产品。)

我创建了一个结帐,可以在没有足够积分的情况下禁用,或者增加用户购买产品后剩余的金额(在此阶段可能稍微有点可观但除此之外)。

问题我正在购买后更新用户元。即每个用户的用户表中都有一个名为“点数”的框,只有管理员才能看到 - 这需要使用新的公式(当前点数 - 订单总数)进行更新。下面我提出的代码不确定如何实现这个或者这实际上是否有效..我在'thankyou页面'中种植了这个,这是在订单被“放置”之后发生的

        <?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 );

         ?>

如果有人有解决方法,问题或任何想法,请告诉我。

由于 富

1 个答案:

答案 0 :(得分: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 );