WooCommerce: Mostrar despacho / Est. Fecha de envío en un solo producto

Una buena manera de informar a los clientes en línea y evitar problemas es mostrar el tiempo estimado de entrega/envío en la página del producto individual, justo debajo del botón "Agregar al carrito". Sí, puede hacerlo manualmente agregando información de envío a la descripción breve de cada producto, pero el objetivo de Business Bloomer es aprender a codificar eso, por lo que no tendrá que escribir las cosas manualmente.
Además, esto es excelente porque si cambia algo en sus reglas de envío, solo necesita cambiar el fragmento corto de PHP y no todas las descripciones de sus productos. Es mucho más flexible de esta manera.
Finalmente, en esta publicación aprenderemos a trabajar con tiempos de corte (hora del día) y día de la semana actual (PHP puro), para que podamos mostrar un aviso "dinámico" basado en la fecha actual. Entonces, ¡veamos cómo se hace!

Fragmento de PHP: Despacho de pantalla / Fecha de entrega estimada @ Página de un solo producto
De los casos:
- Los pedidos de viernes/sábado/domingo se envían el lunes
- Para otros días, si antes de las 16:00 se envía hoy…
- …si después de las 4 p.m. se envía mañana
Tenga en cuenta las funciones " fecha ('N') " y " fecha ('H') ", que en PHP me dan respectivamente el día actual de la semana y la hora actual del día para que pueda compararlos con local & tiempo actual. También busque en la función " date_default_timezone_set() " en caso de que desee establecer una zona horaria diferente, que es vital para los cálculos de este fragmento.
/** * @snippet Dispatch Date @ WooCommerce Single Product * @how-to Get CustomizeWoo.com FREE * @author Rodolfo Melogli * @testedwith WooCommerce 3.9 * @donate $9 https://businessbloomer.com/bloomer-armada/ */ add_action( 'woocommerce_after_add_to_cart_form' , 'bbloomer_dispatch_info_single_product' ); function bbloomer_dispatch_info_single_product() { date_default_timezone_set( 'Europe/London' ); // if FRI/SAT/SUN delivery will be MON if ( date ( 'N' ) >= 5 ) { $del_day = date ( "l jS F" , strtotime ( "next monday" ) ); $order_by = "Monday" ; } // if MON/THU after 4PM delivery will be TOMORROW elseif ( date ( 'H' ) >= 16 ) { $del_day = date ( "l jS F" , strtotime ( "tomorrow" ) ); $order_by = "tomorrow" ; } // if MON/THU before 4PM delivery will be TODAY else { $del_day = date ( "l jS F" , strtotime ( "today" ) ); $order_by = "today" ; } $html = "<br><div class='woocommerce-message' style='clear:both'>Order by 4PM {$order_by} for delivery on {$del_day}</div>" ; echo $html ; } |
Deja una respuesta