Expandiendo las reservas de WooCommerce de Woothemes – Lista de descumbina de disponible

Ah, reservas de WooCommerce de Woothemes, siempre y cuando esperé una muy buena extensión de reserva para WooCommerce y, cuando llegó, no decepcionó: robusto, estable, versátil y, por supuesto, en relación con todas las demás extensiones de Great Woothemes.Pero, desafortunadamente, no hay posibilidad de que ningún desarrollador de complementos de WordPress encapsule cada caso de miles (¿son millones ahora?) De las tiendas de comercio electrónico alimentadas por WoCommerce, por lo que cuando apareció el complemento, también lo han hecho y cientos de solicitudes.para ligeros ajustes o personalizaciones de su funcionalidad básica.
Afortunadamente, como con cualquier complemento de Wootheme, hay muchos ganchos para jugar y cualquier otra cosa se incorpora en modo 100% WP, lo que hace que se extienda muy fácil sin tener que tocar un archivo básico. Cubriré un controlador de fecha en el menú Dopdown Fecha/hora de datos que obtiene directamente del cuadro con el complemento de reservas de WooCommerce es excelente, pero para algunas tiendas que tienen una lista de datos disponible en un DropOwn es una interfaz más fácil de usar. Así es como puedes hacerlo: porque compartiré este código en un enlace al final del artículo, es mejor que sea honesto. Si bien el primer objetivo principal de este complemento es cambiar el campo DatePicker para un DropOwn, la primera línea de código es en realidad $ WSWP_DATES_BUILT = FALSE; -Este establece una variable global (Google PHP Variable Sphere si no sabe a qué me refiero con el global) para grabar si construí las opciones para el menú desplegable. Si no recuerdo mal, esto ha impedido obtener varios conjuntos de los mismos datos en el menú de caída, porque el campo de selección de datos reales se divide en dos/tres campos reales en el formulario de reserva.
Entonces … pasamos al primer objetivo: pasar nuestro campo de selección de datos desde Tipo = selector de datos a un menú desplegable y completando con las opciones de datos disponibles.Como dije, el selector de datos se divide en varios campos, haciendo clic en cualquiera de ellos, el selector se brota y los valores de todos los cálculos de costos.Un desplegable es solo un campo, por lo que lo que debemos hacer es mantener los campos originales, esconderlos y mostrar nuestro nuevo desplegable en su lugar.Luego podemos tomar la selección del menú de caída y ponerla en los campos originales en el IR para proporcionar a las reservas de Woo lo que necesita para proporcionar un precio y permitir la compra de los datos.Afortunadamente, podemos hacer todo esto usando un solo filtro maravilloso.
add_filter (‘Booking_form_fields’, ‘wswp_booking_form_fields’); Función wswp_booking_form_fields ($ campos) {global $ wswp_dates_built; $ i = 0; foreach ($ faclds as $ campo) {$ new_fields [$ i] = $ campo; If ($ field [‘type’] == “Data-Picker” && $ wswp_dates_built === false) {$ s = $ i; $ new_fields [$ s] [‘class’] = array (‘picker-hydden’); $ i ++; $ New_fields [$ i] = $ campo; $ new_fields [$ i] [‘type’] = “select”; $ New_fields [$ i] [‘opciones’] = wswp_build_options ($ campo [‘disponibilidad_rules’] [0]); $ new_fields [$ i] [‘class’] = array (‘picker-chooser’); } $ i ++; } return $ new_fields; } Entonces … Primero traemos $ WSWP_Dates_Built Global como necesitamos aquí. Luego, (porque la matriz original está asociativa) inicia una variable de conteo numérica que podemos usar para realizar un seguimiento de los elementos de la matriz a medida que cambiamos sus valores. Luego ingresamos la matriz real de forma pasada en el filtro como Fields y Build Una matriz de campo de nueve para enviar – $ new_fields. En primer lugar, debido a que mantenemos todos los campos, almacenamos cada campo en la matriz de $ new_fields. Verificamos si es un campo de selección de datos y si aún no hemos creado los datos, vamos a la acción. Agregamos la clase “Picker-Hydden” al campo inicial almacenado en la matriz al valor actual de $ I, luego agregamos 1 a $ i ++ para agregar un clon del mismo campo al matriz al nuevo valor de $ i. Luego realice cambios en ese campo para convertirlo en un menú desplegable.
Cambiamos el tipo de “selección”, agregamos el selector de selección de clase para que lo oriente en DOM (modelo de objeto de documento) y agregamos un elemento “Opciones” en el campo, aquí almacenamos nuestros datos, que provienen de una función y crean Las opciones para el menú Drop -down: le mostraré esa función. El resto del código simplemente se encuentra en $ I y repite el ciclo para los campos restantes y devuelve $ new_fields como el conjunto de campos que ahora forman el formulario de reserva. Entonces, ahora la función que es el pivote de este código wswp_built_options, en el que hemos aprobado las reglas de disponibilidad para el campo de selección inicial. Si se pregunta, las reglas de disponibilidad son una gama muy compleja de reglas creadas a partir de la configuración utilizada para crear el producto reservado. En nuestra posición, analizamos en esa matriz para obtener los datos disponibles. $ fechas = array (); foreach ($ reglas como $ data) {if ($ data [0] == “personalizado”) {$ año = reset (array_keys ($ data [1])); $ mes = reset (array_keys ($ data [1] [$ año])); $ day = reset (array_keys ($ data [1] [$ año] [$ mes])); $ DTime = Stratotime ($ año. “-“. $ Month. “-“. $ Día); $ fechas [$ dtime] = data (“d/m/y”, $ dtime); }} ksort ($ fechas); Foreach ($ fechas como $ key => $ data) {$ fechas [data (“ymd”, $ key) = $ data; Unset ($ fechas [$ clave]); } $ wswp_dates_built = true; Devolver $ fechas; } No me aburriré con una línea con una línea en esa función porque entonces debo ingresar a la estructura de matriz. Para aquellos que desean conocer más funciones de Google, pregunte en los comentarios y jueguen con Print_R en la variable $ reglas.

Ahora, finalmente, solo tenemos que mover el menú de caída de caída en el lugar correcto en el DOM y adjuntar un controlador de eventos al evento de modificación en el menú de caída, de modo que cuando se elija una vez, para completar los campos de selección iniciales con valores. necesarios. Debido a que es un pedazo de JavaScript bastante corto, decidí simplemente ponerlo en el sótano usando el gancho WP_Footer: add_action (‘wp_footer’, ‘wswp_css_js’); Function wswp_css_js () {// Agregar en el pie de página como no suficiente para justificar la nueva hoja de estilo y el archivo js?> .picker-hidden .picker, .picker hidden legend {display: none; }! Data-Picker-Date-Fields ‘); // Adjunte el controlador para insertar datos elegidos en los campos de selección $ (“Seleccione#WC_Books) var selectedDateBreakdown = selectedDate.split (“-“); $ (” Entrada [Nombre*= ‘Willets_field_start_date_year’) .Val (selectedDateBreakDown [1]); $ (“input [name*= ‘wc_bookings_field_start_date_day”) .val (selectedDateBreakdown [2]);}); <? Php} y voilà – ahora cargue la página de cualquier producto reservable y donde una vez vio los campos de selección, ahora verá un hermoso menú de bufanda.

Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

gkOVSBm5B8SgiXmo

Shopify vs WooCommerce – ¿Cuál es la mejor plataforma?(Comparación)

Shopify vs WooCommerce

Leave a Reply

Your email address will not be published. Required fields are marked *