Woocommerce:用户只能购买一次产品

Ale*_*lex 2 php mysql wordpress woocommerce

我可以添加到我的主题的functions.php文件中,以便用户只能购买一次产品?如果之前他们曾经在商店购买任何产品,他们就无法再次购买.

我想代码看起来像这样(伪代码),并将使用woocommerce_add_cart_item_data过滤器.

add_filter( 'woocommerce_add_cart_item_data', 'woo_check_not_bought_before' );

function woo_check_not_bought_before( $cart_item_data ) {

    global $woocommerce;

    // Some MYSQL to check if product was bought before

    if ($bought_before == 'true') {       
         $woocommerce->cart->empty_cart();
    }

    // Echo some text to explain why you can only buy the product once

    return $cart_item_data;
}
Run Code Online (Sandbox Code Playgroud)

Rei*_*gel 5

这是一个简单的解决方案.

add_filter('woocommerce_add_to_cart_validation','rei_woocommerce_add_to_cart_validation',20, 2);
function rei_woocommerce_add_to_cart_validation($valid, $product_id){
    $current_user = wp_get_current_user();
    if ( wc_customer_bought_product( $current_user->user_email, $current_user->ID, $product_id)) {
        wc_add_notice( __( 'Purchased', 'woocommerce' ), 'error' );
        $valid = false;
    }
    return $valid;
}
Run Code Online (Sandbox Code Playgroud)

截图 http://reigelgallarde.me/product/woocommerce-woorei-shop-manager/

但问题是,任何人都可以创建新用户并再次购买.