首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过Woocommerce 3中的functions.php覆盖模块文件

通过Woocommerce 3中的functions.php覆盖模块文件
EN

Stack Overflow用户
提问于 2018-08-31 01:23:09
回答 1查看 0关注 0票数 0

需要覆盖wp-content\plugins\wc-fields-factory\includes\wcff-builder.phpfunctions.php吗?我在stackoverflow上发现了许多类似的问题,但是没有正确的答案。

我的行动:

  1. 复制文件:wp-content\plugins\wc-fields-factory\includes\wcff-builder.phpwp-content\themes\child-theme\wc-fields-factory\wcff-builder-custom.php
  2. 改变一些代码wp-content\themes\child-theme\wc-fields-factory\wcff-builder-custom.php。此文件中的类保持不变。
  3. 有什么必要?有必要连接自定义文件而不是原始文件。

原始文件以这种方式连接:文件wp-content\plugins\wc-fields-factory\includes\wcff-loader.php有行:

代码语言:javascript
复制
if (!defined('ABSPATH')) {exit;}

class Wcff_Loader {
    // wp-content\plugins\wc-fields-factory\includes\wcff-builder.php which we need to redefine.
    public function load_environment() {
        include_once('wcff-builder.php');
    }
}

必须断开原始文件并包含我的自定义文件 wp-content\themes\child-theme\wc-fields-factory\wcff-builder-custom.php

EN

回答 1

Stack Overflow用户

发布于 2018-08-31 10:39:27

首先要做的事情:

  • WCFF(“WC Fields Factory”的缩写)插件当前不支持其模块的自定义 “包含”,例如您试图覆盖/重新定义的“HTML构建器”模块。这意味着,与WooCommerce不同,它会在您的(子)主题文件夹中自动加载和使用自定义模板文件,WCFF 不会自动使用甚至加载您的自定义模块class(即wp-content\themes\child-theme\wc-fields-factory\wcff-builder-custom.php)。

那么如何覆盖模块呢?

  1. 这些涉及编辑核心插件文件: a)只需编辑原始文件即可wp-content\plugins\wc-fields-factory\includes\wcff-builder.php。 b)或编辑include行(in Wcff_Loader::load_environment())in wp-content\plugins\wc-fields-factory\includes\wcff-loader.php- 更改include_once('wcff-builder.php');include_once(get_stylesheet_directory() . '/wc-fields-factory/wcff-builder-custom.php');
  2. 在我之前的回答中,我建议将Wcff::$builder属性重新分配给您的自定义模块class,但我不再将其包含在这个新答案中。但是,您仍然可以在Pastebin上找到代码。这个代码很好,你不需要编辑核心插件文件,但除此之外,让我们忘记代码。

最好的选择?

不是最好的,但与问题中的“通过functions.php” 相匹配的是第二种选择(即上面的选项“2.”)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档