我有关于覆盖woocommerce / includes / gateway / bacs / class-wc-gateway-bacs.php中文件的问题
我已编辑此文件并添加了一些其他字段并更改了展示位置顺序。为了尝试使用我的版本,我尝试了以下位置:
以上所有地点均无效。在我之前的工作中,我通过在/ templates /文件夹中放置重载来成功地覆盖了woo-commerce中的一些文件,但是这次更复杂。
我不想替换原始文件,以防止在更新插件时覆盖自定义编辑。
有没有办法覆盖它?
答案 0 :(得分:3)
您好Mosak我认为您的工作方向错误。由于扩展了Woocommerce支付网关,您无法覆盖处理模板的插件类,但您应该创建自己的插件,将您的代码挂钩到woocommerce用于识别已注册支付网关的过滤器。
add_action('plugins_loaded', 'init_my_gateway_class');
function init_my_gateway_class() {
add_filter('woocommerce_payment_gateways', 'add_this_class_to_gateway_class');
/**
* @param array $methods
* @return string
*/
function add_this_class_to_gateway_class($methods){
$methods[] = 'WC_My_Gateway';
return $methods;
}
class WC_My_Gateway extends WC_Payment_Gateway{
/**
* Here you can create your own payment gateway
* defining the specs on the constructor.
**/
}
}
WC_My_Gateway类假设可能是您对原始bacs类的定制,保持兼容性并使原始bacs类保持活动状态。