Adicione campo personalizado para produtos

add_action('woocommerce_product_options_general_product_data', 'add_custom_product_field'); function add_custom_product_field() { woocommerce_wp_text_input(array( 'id' => 'custom_field', 'label' => __('Custom Field', 'woocommerce'), 'placeholder' => __('Insira as informações aqui.' ), 'desc_tip' => 'verdadeiro', )); } add_action('woocommerce_process_product_meta', 'save_custom_product_field'); função save_custom_product_field($post_id) { $custom_field = $_POST['custom_field']; if (!empty($custom_field)) { update_post_meta($post_id, 'custom_field', esc_attr($custom_field)); } }  

consulte Mais informação

Ocultar opções de envio com base no conteúdo do carrinho

add_filter(‘woocommerce_package_rates’, ‘hide_shipping_based_on_cart_content’, 10, 2); function hide_shipping_based_on_cart_content($rates, $package) { $cart_contains_digital_products = false; foreach ($package[‘contents’] as $item) { $product = $item[‘data’]; if ($product->is_downloadable()) { $cart_contains_digital_products = true; break; } } if ($cart_contains_digital_products) { foreach ($rates as $rate_id => $rate) { if (‘flat_rate’ === $rate->method_id) { unset($rates[$rate_id]); // Flat Rate Versand entfernen } } } return $rates; } […]

consulte Mais informação

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