Suporte » Desenvolvendo com WordPress » Cliente escolher método de entrega

  • Resolvido Joao Carlos Moleta

    (@joo-carlos-moleta)


    Existe algum plugin ou código para poder inserir uma caixa de seleção no carrinho para poder escolher entre várias formas de pagamento.

    Preciso que o cliente escolha entrega para a região sul ou outras regiões ou entrega por correio com cálculo de frete

    Obrigado

Visualizando 3 respostas - 1 até 3 (de um total de 3)
  • Moderador Claudio Sanches

    (@claudiosanches)

    Existe algum plugin ou código para poder inserir uma caixa de seleção no carrinho para poder escolher entre várias formas de pagamento.

    No carrinho não, mas na finalização os clientes podem escolher as formas de pagamento.

    Preciso que o cliente escolha entrega para a região sul ou outras regiões ou entrega por correio com cálculo de frete

    Basta adicionar esses tipos de entrega utilizando a opção de “taxa fixa”, basta mudar o nome para “região sul” e etc.

    Criador do tópico Joao Carlos Moleta

    (@joo-carlos-moleta)

    Queria primeiramente pedir desculpas, pois várias vezes confundi método de pagamento com método de entrega.

    Consegui resolver com satisfação o problema. Com o código abaixo o valor de entrega fica gratuito ou não de acordo com um valor mínimo no carrinho e dependendo do CEP do cliente:

    /*
     * Frete Grátis
     */
    function custom_woocommerce_correios_shipping_methods( $rates, $package ) {
        $states = array( 'PR', 'SC', 'RS' );
        if ( isset( $package['destination'] ) && in_array( $package['destination']['state'], $states ) ) {
    		if ( isset( WC()->cart->subtotal ) && 200 <= WC()->cart->subtotal ) {
    			foreach ( $rates as $key => $rate ) {
    				if ( 'PAC' == $rate['id'] ) {
    					$rates[ $key ]['cost'] = 0;
    					break;
    				}
    			}
    		}
    	} else {
    		if ( isset( WC()->cart->subtotal ) && 300 <= WC()->cart->subtotal ) {
    			foreach ( $rates as $key => $rate ) {
    				if ( 'PAC' == $rate['id'] ) {
    					$rates[ $key ]['cost'] = 0;
    					break;
    				}
    			}
    		}
    	}
    
    	return $rates;
    }
    add_filter( 'woocommerce_correios_shipping_methods', 'custom_woocommerce_correios_shipping_methods', 10, 2 );
    /*
     * FIM Frete Grátis
     */

    Vamos as explicações. Foi utilizado um filtro do próprio woocommerce o woocommerce_correios_shipping_methods.
    Na função dois testes são feitos utilizando o estado e o total do carrinho, combinando estes parâmetros foi possível retornar o valor de entrega nas mais variadas situações.

    A base deste código acima foi postada por Claudio Sanches, mas não consegui encontrar o link aqui. Todos os créditos para ele.

    Moderador Claudio Sanches

    (@claudiosanches)

    Vamos as explicações. Foi utilizado um filtro do próprio woocommerce o woocommerce_correios_shipping_methods.

    Esse filtro é do WooCommerce Correios e não do WooCommerce.
    E note que isso não deve funcionar agora com as áreas de entrega.

Visualizando 3 respostas - 1 até 3 (de um total de 3)
  • O tópico ‘Cliente escolher método de entrega’ está fechado para novas respostas.