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

标签 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;
}

最佳答案

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

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;
}

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

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

关于php - Woocommerce:用户只能购买一次产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25957394/

相关文章:

javascript - D3 强制定向 JSON 邻接表

php - 我的表单正在提交多个数据库条目,但我不希望它这样做

javascript - 如何使用 JS/onclick 过滤 Wordpress 中的元素?

php - 我们如何在 wordpress 中为订户禁用 profile.php

wordpress - 获取 Woocommerce 变体属性

php - 检索当前目录时出错 : getcwd in Docker container

php - Laravel - 数据库查询约定/标准实践

php - 搜索前 500 个字母并排除 html 标签?

MySQL 内存使用率增长到 100%

php - PHP 中的内存友好 JSON 验证