WordPress Hosting

tiempos de entrega woocommerce

Cómo añadir el tiempo estimado de entrega a tu tienda online WooCommerce con y sin plugins

Si en tu tienda online quieres añadir información sobre el tiempo de entrega para que tus clientes tengan ese dato tan importante y que tanto se valora, con lo que conlleva de responsabilidad, hay varias maneras de conseguirlo.

Tiempo de entrega estimado en WooCommerce con un código

Si quieres algo rápido, sencillo y fácil de implementar nada mejor que este código, que puedes añadir como suelas implementar códigos en tu web:

/* Tiempo estimado de entrega en la página de producto */

// Compatibilidad con HPOS
add_action('before_woocommerce_init', function () {
if (class_exists('AutomatticWooCommerceUtilitiesFeaturesUtil')) {
AutomatticWooCommerceUtilitiesFeaturesUtil::declare_compatibility('custom_order_tables', __FILE__, true);
}
});

// Agregamos el campo de tiempo de entrega a productos simples
function ayudawp_campo_entrega_producto_simple() {
woocommerce_wp_text_input([
'id' => '_shipping_time',
'label' => __('Entrega estimada', 'wc-shipping-time'),
'description' => __('Escribe el tiempo estimado de entrega, p.ej., 24H, 48H, 3 dias', 'wc-shipping-time'),
'desc_tip' => true,
]);
}
add_action('woocommerce_product_options_general_product_data', 'ayudawp_campo_entrega_producto_simple');

// Guardamos datos de tiempo de entrega de productos simples
function ayudawp_guardar_campo_entrega_producto_simple($post_id) {
if (isset($_POST['_shipping_time'])) {
update_post_meta($post_id, '_shipping_time', sanitize_text_field($_POST['_shipping_time']));
}
}
add_action('woocommerce_process_product_meta', 'ayudawp_guardar_campo_entrega_producto_simple');

// Agregamos el campo de tiempo de entrega a productos variables
function ayudawp_campo_entrega_variaciones($loop, $variation_data, $variation) {
woocommerce_wp_text_input([
'id' => "variation_shipping_time_$variation->ID",
'label' => __('Entrega estimada', 'wc-shipping-time'),
'description' => __('Escribe el tiempo estimado de entrega, p.ej., 24H, 48H, 3 dias', 'wc-shipping-time'),
'desc_tip' => true,
'type' => 'text',
'value' => get_post_meta($variation->ID, '_shipping_time', true),
]);
}
add_action('woocommerce_variation_options_pricing', 'ayudawp_campo_entrega_variaciones', 10, 3);

// Guardamos datos de tiempo de entrega de productos variables
function ayudawp_guardar_campo_entrega_variaciones($variation_id) {
if (isset($_POST["variation_shipping_time_$variation_id"])) {
update_post_meta($variation_id, '_shipping_time', sanitize_text_field($_POST["variation_shipping_time_$variation_id"]));
}
}
add_action('woocommerce_save_product_variation', 'ayudawp_guardar_campo_entrega_variaciones', 10, 2);

// Pasamos los datos de tiempo de entrega de cada variacion al sistema de variaciones de WooCommerce
function ayudawp_guardar_datos_campo_entrega_variaciones($data, $product, $variation) {
if (!is_array($data)) {
$data = [];
}
$shipping_time = get_post_meta($variation->get_id(), '_shipping_time', true);
$data['shipping_time'] = !empty($shipping_time) ? $shipping_time : '';

return $data;
}
add_filter('woocommerce_available_variation', 'ayudawp_guardar_datos_campo_entrega_variaciones', 10, 3);

// Mostramos el tiempo de entrega en la pagina de producto
function ayudawp_mostrar_campo_entrega() {
global $product;

if (!$product || !is_a($product, 'WC_Product')) {
return;
}

$shipping_time = '';

// Seleccion de variaciones
if ($product->is_type('variable')) {
$default_attributes = $product->get_default_attributes();
foreach ($product->get_available_variations() as $variation) {
$match = true;
foreach ($default_attributes as $attribute => $value) {
if ($variation['attributes']['attribute_' . $attribute] !== $value) {
$match = false;
break;
}
}
if ($match) {
$variation_id = $variation['variation_id'];
$shipping_time = get_post_meta($variation_id, '_shipping_time', true);
break;
}
}
}

// Se usa el tiempo de entrega del producto padre si la variacion no tiene tiempo de entrega
if (empty($shipping_time)) {
$shipping_time = get_post_meta($product->get_id(), '_shipping_time', true);
}

?>
<p id="ayudawp-entrega-estimada" style="display: <?php echo empty($shipping_time) ? 'none' : 'block'; ?>;">
<strong><?php echo esc_html__('Tiempo de entrega estimado:', 'wc-shipping-time'); ?></strong>
<span><?php echo esc_html($shipping_time); ?></span>
</p>

<script type="text/javascript">
jQuery(document).ready(function($) {
$('form.variations_form').on('found_variation', function(event, variation) {
if (variation.shipping_time) {
$('#ayudawp-entrega-estimada').show();
$('#ayudawp-entrega-estimada span').text(variation.shipping_time);
} else {
$('#ayudawp-entrega-estimada').hide();
}
});

$('form.variations_form').on('reset_data', function() {
$('#ayudawp-entrega-estimada').hide();
});
});
</script>
<?php
}
add_action('woocommerce_single_product_summary', 'ayudawp_mostrar_campo_entrega', 20);

¿Qué hace este código?

Una vez añadido a tu web, este código hace lo siguiente:

  • Añade un campo de escritura libre en los datos de los productos simples en el que indicar el tiempo de entrega estimado (con una ayuda emergente indicando qué se puede poner)
  • Añade un campo de escritura libre en los datos de las variaciones de los productos variables en el que indicar el tiempo de entrega estimado (con una ayuda emergente indicando qué se puede poner)
  • Guarda el texto introducido en el nuevo campo en la base de datos, en formato compatible con HPOS.
  • Muestra en la página del producto el tiempo estimado de entrega que hayas introducido en el producto.

Como puedes ver, una solución rápida, sencilla y con el mínimo código posible.

Tiempo de entrega estimado en WooCommerce con plugins

¿Prefieres usar plugins para añadir los tiempos de entrega en tu tienda WooCommerce?, tienes varias opciones, gratis y de pago. Estas son las más recomendables…

  • Order Delivery Date for WooCommerce (gratis) – Interesantísimo plugin gratuito para ofrecer información sobre tiempos de entrega, estimados o comprometidos, pudiendo configurar montones de opciones tanto de administración como de visualización. La limitación es que no puedes asignar tiempos de entrega por taxonomías ni realizar filtrados en la administración por tiempos de entrega, entre otras funcionalidades que sí tienen los plugins de pago, pero merece la pena probarlo.
  • Estimated Delivery Date & Time for WooCommerce (47 €) – Este plugin premium de la empresa Plugify ofrece ajustes con los que mostrar una fecha de entrega estimada de los productos de tu tienda. Tienes la opción de mostrar el plazo estimado de entrega en las páginas de la tienda, producto, carrito de compra y pago. Puedes crear varias reglas para determinar diferentes plazos de entrega en función de los productos. Las reglas se pueden aplicar a varios productos, variaciones, categorías o a toda la tienda.
  • YITH WooCommerce Delivery Date (109,99 €) – Vale lo que cuesta. Tienes todo tipo de ajustes para que los clientes puedan elegir cuándo recibirán los productos que han comprado, editar la fecha de envío más tarde y decidir qué servicio de mensajería desean utilizar, además de tener una descripción clara de la cantidad estimada de días que quedan antes de que se reciba un artículo.
    Como administrador tendrás acceso a toda una gama de funciones diseñadas específicamente para el servicio de envío y entrega, como la posibilidad de establecer un tiempo mínimo para cubrir cualquier tiempo de preparación requerido.

Espero que hayas encontrado tu solución para mostrar a tus clientes los tiempos de entrega estimados de los productos en tu tienda online WooCommerce. Si te ha quedado alguna duda, o quieres comentar qué tal te ha ido, qué método utilizas o cualquier otra cosa puedes hacerlo en los comentarios, aquí no hay inteligencias artificiales, puedes hablar con humanos 😉

Compartir en redes
Resumir con IA

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en las estrellas para valorarlo!

Promedio de puntuación 5 / 5. Total de votos: 5

¡Todavía no hay votos! Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!



Sobre el autor

Scroll al inicio