我希望在wooCommerce中对一个名为class-wc-frontend-scripts.php的文件进行一些修改,在woocommerce / includes /
中我想要修改的功能是:
私有静态函数get_script_data($ handle){ 全球$ wp;
switch ( $handle ) {
case 'wc-single-product' :
return array(
'i18n_required_rating_text' => esc_attr__( 'Please select a rating', 'woocommerce' ),
'review_rating_required' => get_option( 'woocommerce_review_rating_required' ),
'flexslider' => apply_filters( 'woocommerce_single_product_carousel_options', array(
'rtl' => is_rtl(),
'animation' => 'slide',
'smoothHeight' => true,
'directionNav' => false,
'controlNav' => 'thumbnails',
'slideshow' => false,
'animationSpeed' => 500,
'animationLoop' => false, // Breaks photoswipe pagination if true.
) ),
'zoom_enabled' => apply_filters( 'woocommerce_single_product_zoom_enabled', get_theme_support( 'wc-product-gallery-zoom' ) ),
'photoswipe_enabled' => apply_filters( 'woocommerce_single_product_photoswipe_enabled', get_theme_support( 'wc-product-gallery-lightbox' ) ),
'photoswipe_options' => apply_filters( 'woocommerce_single_product_photoswipe_options', array(
'shareEl' => false,
'closeOnScroll' => false,
'history' => false,
'hideAnimationDuration' => 0,
'showAnimationDuration' => 0
) ),
'flexslider_enabled' => apply_filters( 'woocommerce_single_product_flexslider_enabled', get_theme_support( 'wc-product-gallery-slider' ) ),
);
break;
}
return false;
}
对于我的产品滑块,我需要在单个产品页面上显示上一个和下一个箭头。所以我需要将'directionNav'更改为true。
如何在不更改核心文件的情况下执行此操作?
答案 0 :(得分:1)
您是否创建了儿童主题?如果没有,那是你的第一步。这是来自WordPress codex的链接:
https://codex.wordpress.org/Child_Themes
然后,不是编辑该核心文件,而是挂钩到该函数,并将该代码写入您在子主题中创建的functions.php文件中。如果要将代码添加到现有函数,则需要使用操作挂钩。如果要修改代码,请使用过滤器。看起来您正在尝试更改代码,因此最好使用过滤器。
以下是使用过滤器的外观:
{{1}}
以下是WooCommerce中可能有所帮助的文章的链接:
https://docs.woocommerce.com/document/introduction-to-hooks-actions-and-filters/