Hola,
Como puedo anadir en la segunda opción de Courier Delivery (entrega por mensajero), la opción que no sea ni 'Flat Fee' ni 'Free Shipping', sino la opción de poner coste 'o' y mencionar algo como "Please contact us with your suburb for a delivery quote.". Es decir, quiero dar la opción para las entregas a largo distancia, de contactar directamente y en el checkout se pone coste cero.
He tratado de anadir un 'Shipping method' aquí, pero no me da la opción de crearlo.
Muchas gracias!
Un saludo,
Carolina
Contenido solo visible a usuarios registrados
Hola Carolina.
.- Instala el siguiente plugin:
-> https://fr.wordpress.org/plugins/code-snippets/
Una vez instalado:
.- Accede a Fragmentos de código -> Añadir nuevo
.- Añade un título para tenerlo identificado y añade el siguiente código:
add_action('woocommerce_shipping_init', function() {
class WC_Shipping_Contact_Quote extends WC_Shipping_Method {
public function __construct($instance_id = 0) {
$this->id = 'contact_quote';
$this->instance_id = absint($instance_id);
$this->method_title = 'Cotización de envío';
$this->method_description = 'Cliente debe contactar para presupuesto';
$this->supports = array('shipping-zones');
$this->init();
}
public function init() {
$this->init_form_fields();
$this->init_settings();
add_action('woocommerce_update_options_shipping_' . $this->id, array($this, 'process_admin_options'));
}
public function calculate_shipping($package = array()) {
$rate = array(
'id' => $this->get_rate_id(),
'label' => $this->title ?: 'Please contact us with your suburb for a delivery quote',
'cost' => 0,
'package' => $package,
);
$this->add_rate($rate);
}
}
});
add_filter('woocommerce_shipping_methods', function($methods) {
$methods['contact_quote'] = 'WC_Shipping_Contact_Quote';
return $methods;
});
.- Pulsa en guardar y activar:
.- Accede a WooCommerce -> Ajustes -> Envíos
.- Edita la zona de envió donde quieres añadirlo
.- Pulsa en Añadir método de envío
Verás que tienes un nuevo método de envió con el nombre Cotización de envío.
Un saludo
Hola Carolina.
Prueba añadir lo siguiente debajo del otro codigo:
add_filter( 'woocommerce_cart_shipping_method_full_label', 'remove_free_text_from_custom_shipping', 9999, 2 );
function remove_free_text_from_custom_shipping( $label, $method ) {
if ( $method->id === 'contact_quote' || $method->method_id === 'contact_quote' ) {
$label = $method->get_label();
}
return $label;
}
Un Saludo
Hola Carolina.
Ok vamos a ocultarlo por css.
.- Añade lo siguiente en apariencia -> Personalizar -> CSS Adicional:
.wp-block-woocommerce-checkout-order-summary-shipping-block
.wc-block-components-totals-shipping
.wc-block-components-totals-item__value
strong {
display: none !important;
}
Un saludo
Hola Carolina.
Añade lo siguiente:
.wc-block-components-totals-shipping strong {
display: none;
}
span.wc-block-checkout__shipping-option--free {
display: none;
}
Un saludo