使用更新保护WooCommerce定制

时间:2018-06-07 作者:RLM

我制作了一个自定义Wordpress主题,安装了基本的Woo Commerce插件。

我对Woo模板进行了一些自定义html和css更改,例如:

 * @see     https://docs.woocommerce.com/document/template-structure/
 * @author  WooThemes
 * @package WooCommerce/Templates
 * @version 2.4.0
 */

if ( ! defined( \'ABSPATH\' ) ) {
    exit;
}

/**
 * Filter tabs and allow third parties to add their own.
 *
 * Each tab is an array containing title, callback and priority.
 * @see woocommerce_default_product_tabs()
 */
$tabs = apply_filters( \'woocommerce_product_tabs\', array() );

if ( ! empty( $tabs ) ) : ?>

    <div class="woocommerce-tabs wc-tabs-wrapper">
        <?php the_content();?> //****** I added this extra content ******
        <ul class="tabs wc-tabs" role="tablist">
            <?php foreach ( $tabs as $key => $tab ) : ?>
                <li class="<?php echo esc_attr( $key ); ?>_tab" id="tab-title-<?php echo esc_attr( $key ); ?>" role="tab" aria-controls="tab-<?php echo esc_attr( $key ); ?>">
                    <a href="#tab-<?php echo esc_attr( $key ); ?>"><?php echo apply_filters( \'woocommerce_product_\' . $key . \'_tab_title\', esc_html( $tab[\'title\'] ), $key ); ?></a>
                </li>
            <?php endforeach; ?>
        </ul>
        <?php foreach ( $tabs as $key => $tab ) : ?>
            <div class="woocommerce-Tabs-panel woocommerce-Tabs-panel--<?php echo esc_attr( $key ); ?> panel entry-content wc-tab" id="tab-<?php echo esc_attr( $key ); ?>" role="tabpanel" aria-labelledby="tab-title-<?php echo esc_attr( $key ); ?>">
                <?php if ( isset( $tab[\'callback\'] ) ) { call_user_func( $tab[\'callback\'], $key, $tab ); } ?>
            </div>
        <?php endforeach; ?>
    </div>

<?php endif; ?>
我遇到的问题是,当Woo Commerce更新时,它会抹去我的更改,我必须重新实现它们。我的主题是从头开始创建的,因此没有子主题可用于跳过覆盖。

是否有办法保护这些更改并允许Woo更新其需要的内容?

1 个回复
最合适的回答,由SO网友:Steve 整理而成

首先,您不应该直接修改Woocommerce文件。就这点而言,对于WordPress、主题或插件来说,这是个坏主意。大多数插件和主题都提供了以安全更新的方式更改核心功能和外观的方法。

对于Woocommerce,一些基本的指导原则是here.

但简而言之,要修改外观,您通常会将页面或组件复制到主题中的子目录,然后修改这些页面或组件,而不是核心Woocommerce文件。

Woocommerce还支持许多钩子、过滤器和修改功能的操作。乍一看,您似乎应该使用适当的钩子根据自己的喜好修改Woocommerce。

结束

相关推荐

Wp_ajax_工作正常,但wp_ajax_nopriv_返回的是HTML,而不是调用函数

我编写了一个简单的插件,可以在干净的安装上运行。它所做的一切就是,一旦加载了一个页面,它就会通过管理ajax请求一些ajax。然后将返回的数据输出到控制台。当我在网站上发布我正在工作的内容时,这并不是什么特别的事情,只是一些自定义的帖子类型,只有在我登录的情况下才能工作。当用户登录时,通过wp\\u ajax\\u test\\u ajax调用生成ajax输出test\\u ajax\\u process\\u request()的函数时,该函数工作正常,控制台显示从admin ajax加载的内容。php