【问题标题】:How to limit customers buy one product with woocommerce如何限制客户使用 woocommerce 购买一种产品
【发布时间】:2015-11-02 09:23:48
【问题描述】:

我希望客户在返回商店页面时只能从 woo commerce 购买一种产品,他们将被重定向到我的帐户页面。

  <?php
/**
 * Loop Add to Cart
 *
 * @author      WooThemes
 * @package     WooCommerce/Templates
 * @version     2.1.0
 */

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

global $product;
$current_user = wp_get_current_user();

if ( wc_customer_bought_product( $current_user->user_email, $current_user->ID, $product->id)) {
    $redirect = $myaccount;
}

我正在使用放置在循环文件夹中的以下代码,但它不起作用。

我希望用户可以在一生中购买一次产品 注意 - 这不是一次购买一种产品 就像如果有人购买了该产品,那么他/她将永远无法购买任何其他产品。

【问题讨论】:

标签: php wordpress woocommerce


【解决方案1】:

loop/add-to-cart.php 模板创建一个链接。您的模板仅列出了一些变量($redirect$myaccount 定义在哪里?)并且没有创建链接,因此它不会任何事情。

更好的解决方案是通过woocommerce_loop_add_to_cart_link 过滤器过滤在loop/add-to-cart.php 模板中创建的链接。这样,如果该项目尚未购买,您可以保留常规链接。

将以下内容添加到您主题的 functions.php 文件中:

add_filter( 'woocommerce_loop_add_to_cart_link', 'so_add_to_cart_link', 10, 2 );
function so_add_to_cart_link( $link, $product ){

    $current_user = wp_get_current_user();

    if ( wc_customer_bought_product( $current_user->user_email, $current_user->ID, $product->id)) {
        $link = sprintf( '<a href="%s" rel="nofollow" class="button product_type_%s">%s</a>',
            esc_url( get_permalink( wc_get_page_id( 'myaccount' ) ) ),
            esc_attr( $product->product_type ),
            __( 'View my account', 'theme-text-domain' ),
        ),
    }

    return $link;
}

请注意,以上内容尚未经过测试,因此请注意拼写错误。

【讨论】:

【解决方案2】:

打开你的主题functions.php,把下面的代码放在最后。

add_filter( 'woocommerce_add_cart_item_data', 'woo_custom_add_to_cart' );

function woo_custom_add_to_cart( $cart_item_data ) {
global $woocommerce;
$woocommerce->cart->empty_cart();

return $cart_item_data;
}

现在您可以通过将新产品添加到现有购物车中的商品来进行测试,看看它是否只会添加最新产品并删除购物车中所有以前的产品。

【讨论】:

  • 感谢您的回复,但我希望用户可以在一生中购买一次产品注意 - 这不是一次购买一种产品,就像有人购买了该产品那样,他/她将永远无法购买任何产品其他产品。
猜你喜欢
  • 2017-11-03
  • 1970-01-01
  • 1970-01-01
  • 2022-07-11
  • 2019-04-23
  • 2014-11-15
  • 2020-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多