На основе " Выберите учетную запись BACS для отображения на странице спасибо в WooCommerce ", код ответа на один из моих вопросов, я изменил основной файл Woocommerce "class-wc-gateway-bacs.php" ВЧтобы выбрать правильный банковский счет, отображаемый на странице спасибо, который соответствует атрибуту варианта купленного продукта.
Я добавил следующий код в "class-wc-gateway-bacs.php" после строки 255:
foreach ( $order->get_items() as $item ) {$sede = $item->get_meta("pa_sede");};
if ( $bacs_account->sort_code != $sede ) { continue; };
Таким образом, измененный фрагмент кода из функции bank_details()
будет выглядеть следующим образом:
foreach ( $bacs_accounts as $bacs_account ) {
$bacs_account = (object) $bacs_account;
foreach ( $order->get_items() as $item ) {$sede = $item->get_meta("pa_sede");};
if ( $bacs_account->sort_code != $sede ) { continue; };
if ( $bacs_account->account_name ) {
$account_html .= '<h3 class="wc-bacs-bank-details-account-name">' . wp_kses_post( wp_unslash( $bacs_account->account_name ) ) . ':</h3>' . PHP_EOL;
}
$account_html .= '<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(
'bank_name' => array(
'label' => __( 'Bank', 'woocommerce' ),
'value' => $bacs_account->bank_name,
),
'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'] ) ) {
$account_html .= '<li class="' . esc_attr( $field_key ) . '">' . wp_kses_post( $field['label'] ) . ': <strong>' . wp_kses_post( wptexturize( $field['value'] ) ) . '</strong></li>' . PHP_EOL;
$has_details = true;
}
}
$account_html .= '</ul>';
}
Однако, это не очень хорошая практика, и я хотел бы использовать подключенную функциювместо того, чтобы возиться с class-wc-gateway-bacs.php.
Любая помощь будет оценена.