2016-07-04 15 views
2

woocommerce/includes/bacs/class-wc-gateway-bacs.phpのテンプレートファイルをmytheme/includes/bacs/class-wc-gateway-bacs.phpに変更することは可能でしょうか?この瞬間、私はプラグインコアでコードを変更しましたが、更新後に再び変更されます。Woocommerce BACS支払いゲートウェイのアカウントの詳細を変更する

誰かがフックなどでファイルfunction.phpでそれを行う方法を知っていますか?

私はこの機能を変更する必要が

/** 
* Get bank details and place into a list format. 
* 
* @param int $order_id 
*/ 
private function bank_details($order_id = '') { 

    if (empty($this->account_details)) { 
     return; 
    } 

    // Get order and store in $order 
    $order  = wc_get_order($order_id); 

    // Get the order country and country $locale 
    $country = $order->billing_country; 
    $locale  = $this->get_country_locale(); 

    // Get sortcode label in the $locale array and use appropriate one 
    $sortcode = isset($locale[ $country ]['sortcode']['label']) ? $locale[ $country ]['sortcode']['label'] : __('Sort Code', 'woocommerce'); 

    $bacs_accounts = apply_filters('woocommerce_bacs_accounts', $this->account_details); 

    if (! empty($bacs_accounts)) { 
     echo '<h2 class="wc-bacs-bank-details-heading">' . __('Our Bank Details', 'woocommerce') . '</h2>' . PHP_EOL; 

     foreach ($bacs_accounts as $bacs_account) { 

      $bacs_account = (object) $bacs_account; 

      if ($bacs_account->account_name || $bacs_account->bank_name) { 
       echo '<h3>' . wp_unslash(implode(' - ', array_filter(array($bacs_account->account_name, $bacs_account->bank_name)))) . '</h3>' . PHP_EOL; 
      } 

      echo '<ul class="wc-bacs-bank-details order_details bacs_details">' . PHP_EOL; 

      // BACS account fields shown on the thanks page and in emails 
      $account_fields = apply_filters('woocommerce_bacs_account_fields', array(
       'account_number'=> array(
        'label' => __('Account Number', 'woocommerce'), 
        'value' => $bacs_account->account_number 
       ), 
       'sort_code'  => array(
        'label' => $sortcode, 
        'value' => $bacs_account->sort_code 
       ), 
       'iban'   => array(
        'label' => __('IBAN', 'woocommerce'), 
        'value' => $bacs_account->iban 
       ), 
       'bic'   => array(
        'label' => __('BIC', 'woocommerce'), 
        'value' => $bacs_account->bic 
       ) 
      ), $order_id); 

      foreach ($account_fields as $field_key => $field) { 
       if (! empty($field['value'])) { 
        echo '<li class="' . esc_attr($field_key) . '">' . esc_attr($field['label']) . ': <strong>' . wptexturize($field['value']) . '</strong></li>' . PHP_EOL; 
       } 
      } 

      echo '</ul>'; 
     } 
    } 

} 

私は本当に事前にありがとう:)解決

+1

最初のBacの支払い方法...「BACSの設定を解除する方法」または「woocommerceの設定を解除する方法」と「woocommerceのカスタム支払い方法」のような検索結果をGoogleで検索してみてください。次に、class-wc-gateway-bacs.phpからいくつかのコードを取得することができます。ちょっとした提案です。 – LoicTheAztec

+0

ありがとう、あなたは私に正しい道を与えました。私は同様の機能を持つプラグインを作成しましたが、変数は異なりますが、現在は動作しています;)@LoicTheAztec – Baivaras

+1

@LoicTheAztec完了。私はそれを正しく説明する方法を知らないが、私はベストを尽くした – Baivaras

答えて

1

問題、これを支援する必要があります。

私はちょうど余分を作成しましたファイルfilename.php、フックを挿入+デフォルトwoocommerce/includes/bacs/class-wc-gateway-bacs.phpコード、$this->id = 'bacs';$this->id = 'YOUR ID NAME';に変更し、すべての変数を「bacs」に変更しましたo "YOUR ID NAME"。このファイルは、pluginsフォルダに移動し、ワードプレスでそれを活性化させる:)

Full code example fiddle(sorry for jsfiddle)

<?php 
/* 
Plugin Name: Custom Payment Gateway 
Description: Custom payment gateway 
Author: Baivaras 
*/ 

if (! defined('ABSPATH')) { 
    exit; // Exit if accessed directly 
} 

/** 
* Custom Payment Gateway. 
* 
* Provides a Custom Payment Gateway, mainly for testing purposes. 
*/ 
add_action('plugins_loaded', 'init_custom_gateway_class'); 
function init_custom_gateway_class(){ 

    class WC_Gateway_Custom extends WC_Payment_Gateway { 

     public $domain; 

     /* class-wc-gateway-bacs.php from public function __construct CODE GOES HERE */ 
    } 
} 

add_filter('woocommerce_payment_gateways', 'add_custom_gateway_class'); 
function add_custom_gateway_class($methods) { 
    $methods[] = 'WC_Gateway_Custom'; 
    return $methods; 
} 

何かが間違っていた場合、私の英語のため申し訳ありません:)あなたが設定解除、カスタム支払い方法を作成しないのはなぜ

関連する問題