覆盖woocommerce类文件

时间:2017-09-07 12:10:54

标签: php wordpress woocommerce

我希望在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。

如何在不更改核心文件的情况下执行此操作?

1 个答案:

答案 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/