一尘不染

检查客户是否已经在WooCommerce中购买了商品

php

我想创建一个WooCommerce插件,为有购买历史记录的客户添加一些优惠。

如何检查用户之前购买过的东西?

谢谢。


阅读 320

收藏
2020-05-29

共1个答案

一尘不染


是的,可以 创建一个 条件函数,true客户已经完成至少一个订单 且状态 已完成返回
条件函数

这是此条件函数的代码:

function has_bought() {
    // Get all customer orders
    $customer_orders = get_posts( array(
        'numberposts' => -1,
        'meta_key'    => '_customer_user',
        'meta_value'  => get_current_user_id(),
        'post_type'   => 'shop_order', // WC orders post type
        'post_status' => 'wc-completed' // Only orders with status "completed"
    ) );

    // return "true" when customer has already at least one order (false if not)
   return count($customer_orders) > 0 ? true : false; 
}

此代码已经过测试并且可以工作。

这段代码在您的活动子主题或主题的function.php文件中,或在插件php文件中。


用法 (作为条件)

  • 您可以在 以前复制到活动子主题或主题的 某些 WooCommerce模板使用它。
  • 在您的主题php文件中。
  • 在插件php文件中
  • 任何php函数或WordPress / WooCommerce。

2020-05-29