Máte e-shop na WooCommerce a běží skvěle. A najednou zjistíte, že potřebujete zařídit, aby si zákazníci mohli koupit produkty jen jednou (např. z důvodu toho, že si kupují kurzy, SW nebo jiné).
1) Je potřeba nastavit u produktu, aby šel koupit jen jednou.
2) do Child theme si přidáte kousek kódu, kterým skryjete tlačítko koupit u produktu:
// disable ability to purchase product multiple times
add_filter( 'woocommerce_is_purchasable', 'jk_hide_add_cart_if_already_purchased', 9999, 2 );
function jk_hide_add_cart_if_already_purchased( $is_purchasable, $product ) {
if ( wc_customer_bought_product( '', get_current_user_id(), $product->get_id() ) ) {
$is_purchasable = false;
}
return $is_purchasable;
}
Kategorie a štítky
To samé můžete udělat pro celou kategorii produktů nebo štítek produktu (nebo cokoli dalšího). Varianta pro štítek (252 je ID štítku, které je třeba změnit):
// disable ability to purchase product multiple times
function jk_hide_add_cart_if_already_purchased( $purchasable, $product ){
if( in_array(252, $product->tag_ids)) {
if ( wc_customer_bought_product( '', get_current_user_id(), $product->get_id() ) ) {
$is_purchasable = false;
}
}
return $purchasable;
}
add_filter( 'woocommerce_is_purchasable', 'jk_hide_add_cart_if_already_purchased', 10, 2 );

