• Resolvido BrunoCassoni

    (@brunocassoni)


    Olá, boa tarde.

    Venho procurando esta solução e não estou encontrando.

    Preciso que alguns produtos (pesados de mais) sejam retirados na loja, mas nestes produtos a opção sedex e pac não pode aparecer.

    Já criei classes de entrega etc.. mas não funcionou, a opção retirar no local aparece mais o sedex e o pac também, preciso que estes produtos tenham apenas a opção “retirar no local”.

    Agradeço a ajuda.

Visualizando 1 resposta (de um total de 1)
  • Moderador Claudio Sanches

    (@claudiosanches)

    Se for apenas ocultar as outras opções e deixar apenas método de “Retira no local”, então pode fazer com o seguinte código:

    function my_wc_hide_shipping_method_by_shipping_class( $rates, $package ) {
    	$shipping_class_id = 123;
    	$contains = false;
    
    	// Check if package contains selected shipping class.
    	foreach ( $package['contents'] as $item ) {
    		$product = $item['data'];
    		if ( $shipping_class_id === $product->get_shipping_class_id() ) {
    			$if_exists = true;
    			break;
    		}
    	}
    
    	if ( $contains ) {
    		// Remove all methods except local_pickup.
    		foreach ( $rates as $rate_id => $rate ) {
    			if ( 'local_pickup' !== $rate->method_id ) {
    				unset( $rates[ $rate_id ] );
    			}
    		}
    	}
    
    	return $rates;
    }
    
    add_filter( 'woocommerce_package_rates', 'my_wc_hide_shipping_method_by_shipping_class', 10, 2 );

    Basta trocar o 123 pelo ID da sua classe de entrega.

Visualizando 1 resposta (de um total de 1)
  • O tópico ‘Woocommerce – Retirar no Local’ está fechado para novas respostas.