Como adicionar um field para entrega customizado e utiliza-lo em um método de en
-
Pessoal eu quero calcular a taxa de entrega por bairros sem usar CEP. Fiz um método de entrega customizado, porém só consigo usar os fields de endereço padrão do woocommerce:
function my_custom_shipping_init() { class my_custom_shipping_method extends WC_Shipping_Method { public function __construct() { $this->id = 'my_custom_shipping'; $this->method_title = __('Taxa de entregar por bairros', 'my-custom-shipping'); $this->enabled = 'yes'; $this->title = __('Taxa de entregar por bairros', 'my-custom-shipping'); $this->method_description = __('Plugin to calculate My Custom Shipping Cost', 'my-custom-shipping'); } function calculate_shipping( $package = array() ) { $shipping_cost = 0; $destination_district = $package['destination']['city']; switch($destination_district){ case 'Centro': $shipping_cost = 5; break; case 'Cariru': $shipping_cost = 7; break; } $this->add_rate(array('id' => 'my_custom_shipping', 'label' => 'Taxa de Entrega', 'cost' => $shipping_cost, 'taxes' => '', 'calc_tax' => 'per_order')); } } } add_action( 'woocommerce_shipping_init', 'my_custom_shipping_init' ); function my_custom_shipping_method( $methods ) { $methods[] = 'my_custom_shipping_method'; return $methods; } add_filter( 'woocommerce_shipping_methods', 'my_custom_shipping_method' );
No caso eu estou usando o field de endereço de cidade padrão do woocommerce, funciona porem eu quero poder criar um field de nome “bairro” e poder usa-lo.
Eu criei um field customizado:
function calculate_shipping( $fields = array() ) { $shipping_cost = 0; $destination_district = $fields['billing']['bairro']; switch($destination_district){ case 'Alpha': $shipping_cost = 5; break; case 'Beta': $shipping_cost = 7; break; }
e tentei passar-lo para o meu metodo:
function my_custom_shipping_method( $methods ) { $methods[] = 'my_custom_shipping_method'; return $methods; } add_filter( 'woocommerce_shipping_methods', 'my_custom_shipping_method' ); add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' ); // Our hooked in function - $fields is passed via the filter! function custom_override_checkout_fields( $fields ) { $fields['billing']['bairro'] = array( 'label' => __('Bairro', 'woocommerce'), 'type' => 'text', 'required' => true, 'class' => array('form-row-wide'), 'clear' => true ); return $fields; }
mas sem sucesso
Alguém pode ajudar?
A visualizar 1 resposta (de um total de 1)
A visualizar 1 resposta (de um total de 1)
- O tópico ‘Como adicionar um field para entrega customizado e utiliza-lo em um método de en’ está fechado a novas respostas.