tricks snippets snippet online examples code almanac javascript wordpress override woocommerce

snippets - html css javascript online



Anular el Frontend de WooCommerce Javascript (3)

¿Alguien puede guiarme en cuanto a cuál es el método adecuado para anular los archivos Javascript básicos de WooCommerce, específicamente los archivos frontend? No he encontrado ninguna documentación sobre esto y estoy mirando el código, la ruta a los archivos del script frontend está codificada en el plugin así que dudo que al colocar una carpeta de activos en mi tema haga cualquier cosa.

¿Cuál es la forma más limpia de esto para que pueda cargar un archivo ubicado en mi directorio de temas?

Gracias


Agregue esta sección a su function.php

function themeslug_enqueue_script() { wp_enqueue_script( ''add-to-cart-variation'', get_bloginfo( ''url'' ). ''/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart-variation.js'', false ); } add_action( ''wp_enqueue_scripts'', ''themeslug_enqueue_script'' );


Tuve el mismo problema, excepto con add-to-cart.js. La solución simple es DEQUEUEAR la secuencia de comandos woocommerce y REEMPLAZAR su reemplazo. En mi caso agregué lo siguiente a mis funciones.php:

wp_dequeue_script(''wc-add-to-cart''); wp_enqueue_script( ''wc-add-to-cart'', get_bloginfo( ''stylesheet_directory'' ). ''/js/add-to-cart-multi.js'' , array( ''jquery'' ), false, true );

Querrá DEQUEUE el script ''wc-add-to-cart-variation''. No creo que tengas que COINCIDIR con el mismo nombre, pero no pude ver una razón para no hacerlo.

Espero que esto ayude.

Si está utilizando la versión 4.0.1 de WordPress y la versión 2.2.10 de WooCommerce. Puede usar los siguientes scripts:

wp_deregister_script(''wc-add-to-cart''); wp_register_script(''wc-add-to-cart'', get_bloginfo( ''stylesheet_directory'' ). ''/js/add-to-cart-multi.js'' , array( ''jquery'' ), WC_VERSION, TRUE); wp_enqueue_script(''wc-add-to-cart'');


WooCommerce carga scripts y estilos class-wc-frontend-scripts.php archivo class-wc-frontend-scripts.php , y se puede encontrar cómo los scripts están registrados, en cola, localizados y dependencias.

El lugar preferido para poner en cola los scripts en Wordpress es el wp_enqueue_scripts acción wp_enqueue_scripts , porque ese es el momento después de que Wordpress está completamente cargado pero antes de que se realice cualquier salida. Y también me gusta poner en cola todos mis guiones y estilos relacionados en una sección de código.

Cuando desee eliminar completamente algunas secuencias de comandos, es suficiente llamar a wp_deregister_script() o wp_dequeue_script() . Pero a veces, si desea realizar algunos cambios y dejar las dependencias, variables y localización existentes, existe un problema porque los complementos se cargan antes que los temas. Así que las funciones en cola no funcionarán como es de esperar. Simple wp_dequeue_script() => wp_enqueue_script() no funcionará , wp_deregister_script() => wp_register_script () funcionará, pero los datos localizados se perderán.

Esto se puede resolver trabajando directamente con el objeto global $wp_scripts que contiene y administra todos los scripts cargados a través de wp_enqueue_script() o registrados con wp_register_script() :

add_action( ''wp_enqueue_scripts'', ''load_theme_scripts'' ); function load_theme_scripts() { global $wp_scripts; $wp_scripts->registered[ ''wc-add-to-cart'' ]->src = get_template_directory_uri() . ''/woocommerce/js/wc-add-to-cart.js''; }