WooCommerce 프런트엔드 Javascript 재정의
WooCommerce의 핵심 Javascript 파일, 특히 프런트엔드 파일을 덮어쓰는 적절한 방법이 무엇인지 누가 안내해 주시겠습니까?이에 대한 문서를 찾을 수 없고 코드를 보면 프런트 엔드 스크립트 파일의 경로가 플러그인으로 하드 코딩되어 있기 때문에 테마에 자산 폴더를 배치하는 것이 도움이 될지 의문입니다.
테마에 있는 파일을 로드할 수 있는 가장 깨끗한 방법은 무엇입니까?
감사해요.
add-to-cart.js 이외에는 같은 문제가 있었습니다.간단한 해결책은 woocommerce 스크립트를 디큐잉하고 대체 스크립트를 엔큐잉하는 것입니다.제 경우, 다음과 같은 기능을 추가했습니다.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 );
'wc-add-to-cart-variation' 스크립트를 디큐잉할 수 있습니다.굳이 같은 이름으로 ENQUEUE를 해야 할 필요는 없을 것 같은데, 안 할 이유가 없네요.
이게 도움이 됐으면 좋겠다.
WordPress 버전 4.0.1 및 WooCommerce 버전 2.2.10을 사용하는 경우다음 스크립트를 사용할 수 있습니다.
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는 프런트 엔드 스크립트와 스타일을 로딩합니다.class-wc-frontend-scripts.php스크립트의 등록, 큐잉, 현지화 및 의존관계를 확인할 수 있습니다.
Wordpress에서 스크립트를 큐잉하기 위해 권장되는 장소는wp_enqueue_scripts액션 훅은 워드프레스가 완전히 로드된 후 출력이 생성되기 전의 순간이기 때문입니다.그리고 관련된 모든 대본과 스타일을 코드의 한 섹션에 넣는 것을 좋아합니다.
일부 스크립트를 완전히 삭제하려면 다음 중 하나를 호출합니다.wp_deregister_script()또는wp_dequeue_script()충분합니다.다만, 기존의 의존관계, 변수, 및 현지화를 변경하지 않고 싶은 경우는, 테마보다 플러그 인이 먼저 로드되기 때문에, 문제가 발생하는 경우가 있습니다.따라서 enqueue 기능은 예상대로 작동하지 않습니다.간단하죠.wp_dequeue_script() => wp_enqueue_script()동작하지 않습니다.wp_deregister_script() => wp_register_script()는 동작하지만 현지화된 데이터는 손실됩니다.
이 문제는 다음 제품과 직접 연계하여 해결할 수 있습니다.$wp_scripts로딩된 모든 스크립트를 포함하고 관리하는 글로벌 개체wp_enqueue_script()또는 에 등록되어 있습니다.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';
}
이 섹션을 기능에 추가합니다.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' );
언급URL : https://stackoverflow.com/questions/11852570/override-woocommerce-frontend-javascript
'sourcecode' 카테고리의 다른 글
| Woocommerce Ajax가 프로그래밍 방식으로 카트에 추가 (0) | 2023.02.07 |
|---|---|
| 태그 패널을 커스텀 투고 타입으로 표시 (0) | 2023.02.07 |
| Wordpress(3.8) 관리 UI 스타일 CSS 클래스 (0) | 2023.02.07 |
| Python: json.loads는 'u'가 붙은 항목을 반환합니다. (0) | 2023.02.07 |
| Wordpress 관리자 페이지에 템플릿 드롭다운이 표시되지 않음 (0) | 2023.02.07 |