覆盖主题的WooCommerce文件

时间:2018-08-17 作者:Jitendra Mishra

通常,我们可以将WooCommerce文件添加到主题中,这样它将覆盖默认的WooCommerce文件。

但我正在开发一个插件,它在WooCommerce页面上有一些额外的功能,我希望它用自己的文件覆盖主题的WooCommerce文件。

现在,我正在将修改后的插件代码添加到主题本身,以使其正常工作。但我希望这些文件直接从插件运行,这样我就不需要每次更改主题时都添加这些文件。

我主要关心的是单一产品页面(包括简单产品和可变产品)。

有什么有用的提示吗?

1 个回复
SO网友:TheDeadMedic

您可以使用wc_get_template 过滤器,允许您在模板包含之前覆盖模板的绝对文件路径。例如,此覆盖checkout/payment.php:

add_filter( \'wc_get_template\', function ( $file, $name ) {
    if ( $name === \'checkout/payment.php\' ) {
        // $file must be an absolute filepath

        // e.g. path relative to current file
        $file = __dir__ . \'/templates/checkout/payment.php\';

        // e.g. path relative to parent directory
        $file = dirname( __dir__ ) . \'/templates/checkout/payment.php\';
    }

    return $file;
}, 10, 2 );

结束

相关推荐