覆盖Woocommerce支付网关模板

时间:2014-06-12 13:48:36

标签: wordpress woocommerce

我已经对eBay支付网关文件进行了更改,因为我想更改PayPal按钮文本以说出其他内容。我认为这是我最好的解决方案,因为我不熟悉我自己的钩子/过滤器。

我已经检查过这个修改过的模板文件有效 - 确实如此。但是,当我将其加载到我的主题文件时,它不会覆盖。

我试过了:

  1. 主题目录
  2. 主题/ woocommerce /文件
  3. 主题/ woocommerce /包括/网关/贝宝/文件
  4. 这些都不起作用......任何人都可以帮助我吗?

    提前致谢: - )

1 个答案:

答案 0 :(得分:5)

似乎没有覆盖您问题的解决方案。但您可以添加一个全新的支付网关 只需扩展WC_Payment_Gateway类,换句话说就是添加另一个支付网关。

第1步

您可以复制文件:

plugins/woocommerce/includes/gateways/class-wc-gateway-paypal.php

在您的目录主题中,为方便起见更改其名称并将其包含在functions.php中:

/*  Custom gateway class */
require( get_template_directory() . '/path/to/class-wc-gateway-paypal-custom.php' );

第2步

此文件包含扩展WC_Gateway_Paypal的{​​{1}}类。您可以编辑此文件以进行自定义。

请记住更改扩展程序类的名称:

WC_Payment_Gateway

试一试,如果您遇到困难,请告诉我们! :)

更新 2014年6月13日

知道有一个允许您更改贝宝图像的过滤器也很有用,所以:

class WC_Gateway_Paypal_Custom extends WC_Payment_Gateway {
    public function __construct() {

        $this->id                = 'paypal';
        $this->icon              = apply_filters( 'woocommerce_paypal_icon', WC()->plugin_url() . '/assets/images/icons/paypal.png' );
        $this->has_fields        = false;
        // Change the text in the way you like it
        $this->order_button_text = __( 'Proceed to PayPal', 'woocommerce' );
        $this->liveurl           = 'https://www.paypal.com/cgi-bin/webscr';
        $this->testurl           = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
        $this->method_title      = __( 'PayPal', 'woocommerce' );
        $this->notify_url        = WC()->api_request_url( 'WC_Gateway_Paypal' );
    }

    //other payment gateway stuff
}