首页 > 解决方案 > 如果客户购买了一些特定的产品,那么我想将其他条件放入其中

问题描述

如果用户购买我的 woocommerce 产品(id= 1900,1902,1938)。然后我想在其中添加一些其他条件。任何人都可以帮助我吗?我试过这个检查客户是否在 WooCommerce 中购买了特定产品

但它对我不起作用,因为它只适用于一种产品(但不适用于许多产品)。

这是我的代码:

function has_bought_items() {
    $bought = false;

    // Set HERE ine the array your specific target product IDs
    $prod_arr = array( '1900','1902','1938');

    // 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"
    ) );
    foreach ( $customer_orders as $customer_order ) {
        // Updated compatibility with WooCommerce 3+
        $order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;
        $order = wc_get_order( $customer_order );

        // Iterating through each current customer products bought in the order
        foreach ($order->get_items() as $item) {
            // WC 3+ compatibility
            if ( version_compare( WC_VERSION, '3.0', '<' ) ) 
                $product_id = $item['product_id'];
            else
                $product_id = $item->get_product_id();

            // Your condition related to your 2 specific products Ids
            if ( in_array( $product_id, $prod_arr ) ) 
                $bought = true;
        }
    }
    // return "true" if one the specifics products have been bought before by customer
    return $bought;
}

然后我在 IF / ELSE 语句中以这种方式使用它:

if ( has_bought_items() ) { 
    // my condtion
} else { 
    //no condition
}

标签: phpif-statementwoocommerceconditional-statementsproduct

解决方案


推荐阅读