php - woodemia - woocommerce plugin envios
Pago y envío de WooCommerce: cómo realizar envíos gratuitos para una dirección específica (2)
El siguiente código permitirá el envío gratis de un producto específico:
function wcs_my_free_shipping( $is_available ) {
global $woocommerce;
// set the product ids that are eligible
$eligible = array( ''360'' );
// get cart contents
$cart_items = $woocommerce->cart->get_cart();
// loop through the items looking for one in the eligible array
foreach ( $cart_items as $key => $item ) {
if( in_array( $item[''product_id''], $eligible ) ) {
return true;
}
}
// nothing found return the default value
return $is_available;
}
add_filter( ''woocommerce_shipping_free_shipping_is_available'', ''wcs_my_free_shipping'', 20 );
Lo que me gustaría hacer es permitir el envío gratis no por un producto, sino por una combinación específica de calle y código postal en la dirección de entrega. Descubrí cómo verificar esto para un usuario que inició sesión, pero parece que no puedo encontrar las variables correctas que tienen esta información en el proceso de pago. Cualquier ayuda sería muy apreciada.
Gracias de antemano, -Ben
Ya hay zonas de envío disponibles en WooCommerce. Para cada zona específica, puede configurar el método de envío como "Tarifa fija" o "Envío gratuito". Puedes consultarlo en Woocommerce-> Configuración. Encuentra la pestaña Envío
Sí, puede, hay un parámetro adicional que puede pasar a este paquete de nombre de gancho $.
por ej.
add_filter( ''woocommerce_shipping_free_shipping_is_available'', ''wcs_my_free_shipping'', 20,2 );
function wcs_my_free_shipping( $is_available, $package){
//Your code for free shipping for a selected address found in $package
return $is_available
}
$ package contiene la dirección que ingresó para que pueda usar esto para aplicar el envío gratis para los códigos postales o calles seleccionados