Ocultar produtos de categorias específicas na página da loja

add_action('pre_get_posts', 'exclude_products_from_categories'); function exclude_products_from_categories($query) { if (is_shop() && $query->is_main_query()) { $excluded_categories = array(7, 8, 9); // Categorias a serem excluídas $query->set('tax_query', array( array( 'taxonomy' => 'product_cat', 'field' => 'id', 'terms' => $excluded_categories, 'operator' = > 'NOT EM', ), )); } }  

consulte Mais informação

Aplique o código do cupom com base na categoria do produto

add_action('woocommerce_before_cart', 'apply_coupon_based_on_category'); função apply_coupon_based_on_category() { $coupon_code = 'CATEGORYCODE'; // Código do cupom para categoria específica $target_category = 'sale'; // Nome da categoria $cart = WC()->cart; $cupom_aplicado = falso; foreach ($cart->get_cart() as $cart_item) { $product = $cart_item['dados']; if (has_term($target_category, 'product_cat', $product->get_id())) { $coupon_applied = true; quebrar; } } if (!$coupon_applied) { $cart->apply_coupon($coupon_code); } }  

consulte Mais informação

Os custos de envio mudam com base no peso dos produtos

add_filter('woocommerce_package_rates', 'ajustar_shipping_costs_by_weight', 10, 2); função ajustar_shipping_costs_by_weight($rates, $package) { $total_weight = WC()->carrinho->get_cart_contents_weight(); if ($total_weight > 10) { foreach ($rates as $rate_id => $rate) { $rates[$rate_id]->custo += 7,00; // Custos adicionais de envio para pacotes pesados } } return $rates; }  

consulte Mais informação

Ocultar produtos na categoria “Promoção”

add_action('pre_get_posts', 'exclude_sale_category_products'); function exclude_sale_category_products($query) { if (is_shop() && $query->is_main_query()) { $query->set('tax_query', array( array( 'taxonomy' => 'product_cat', 'field' => 'slug' , 'termos' => 'venda', 'operador' => 'NÃO ESTÁ', ), )); } }  

consulte Mais informação

Frete grátis acima de um determinado valor

add_filter('woocommerce_shipping_free_shipping_is_available', 'free_shipping_above_threshold', 10, 2); função free_shipping_above_threshold($is_available, $package) { $free_shipping_threshold = 75; // Valor a partir do qual o frete é grátis $cart_total = WC()->cart->get_cart_contents_total(); if ($cart_total >= $free_shipping_threshold) { $is_available = verdadeiro; } retornar $is_disponível; }  

consulte Mais informação

Defina uma quantidade mínima de pedido para entrega gratuita

A função set_free_shipping_minimum() no WooCommerce verifica se o valor do carrinho de compras do cliente atingiu o valor mínimo do pedido para frete grátis. Caso o valor do carrinho esteja abaixo do valor mínimo do pedido, uma mensagem de erro será exibida informando ao cliente que ele precisa atingir o valor mínimo do pedido para receber frete grátis. O valor mínimo do pedido pode ser alterado na função por […]

consulte Mais informação