Modify Woocommerce Javascript

Modify Woocommerce Javascript

本文关键字:Javascript Woocommerce Modify      更新时间:2023-09-26

上下文:我有一堆具有 2-3 个不同属性的产品变体,但一个是"主要属性",而一旦选择了主要属性,其他都是唯一的,所以我需要在更改主要属性时自动选择它们(并且可能隐藏下拉列表使用 css)。

已将相应的文件复制到我的主题中并进行了覆盖

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

这工作正常,但它会抛出错误:

Uncaught TypeError: wp.template is not a function

到目前为止,我没有对文件进行任何更改,所以我希望它能正常工作,因为我目前正在用相同的文件交换一个文件,但我显然错过了一些东西......

提前感谢大家

PS. 编辑:

这是添加到购物车验证的第一组行.js其中会抛出错误以以防万一。

;(function ( $, window, document, undefined ) {
$.fn.wc_variation_form = function() {
    var $form                  = this,
        $single_variation      = $form.find( '.single_variation' ),
        $product               = $form.closest( '.product' ),
        $product_id            = parseInt( $form.data( 'product_id' ), 10 ),
        $product_variations    = $form.data( 'product_variations' ),
        $use_ajax              = $product_variations === false,
        $xhr                   = false,
        $reset_variations      = $form.find( '.reset_variations' ),
        template               = wp.template( 'variation-template' ),
        unavailable_template   = wp.template( 'unavailable-variation-template' ),
        $single_variation_wrap = $form.find( '.single_variation_wrap' );

一目了然,wp.template/wp-includes/js/wp-util.js 中定义的方法。当WooCommerce注册wc-add-to-cart-variation脚本时,它作为依赖项包含在内。您似乎没有在调用wp_register_script()中将wp-util作为依赖项包含在内。