【问题标题】:Wordpress update user meta through woocommerce checkout processWordpress 通过 woocommerce 结帐流程更新用户元数据
【发布时间】:2013-07-31 12:52:41
【问题描述】:

我基本上是在 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 );

         ?>

如果有人有修复、问题或任何想法,请告诉我。

谢谢 丰富

【问题讨论】:

  • 您应该首先尝试自己的解决方案,如果这不起作用,请询问您正在使用的具体问题。类型问题是这个代码好应该去codereview.stackexchange.com
  • 嗨,我已经尝试过这个解决方案(问题中的代码),但它不起作用 - 抱歉,如果我没有足够具体地指出这一点。

标签: wordpress woocommerce meta points


【解决方案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-07-22
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 2015-09-12
    相关资源
    最近更新 更多