Проблема с разработкой пользовательского платежного шлюза WordPress WooCommerce

#php #wordpress #woocommerce

#php #wordpress #woocommerce

Вопрос:

Я хочу задать заголовок для моего платежного шлюза, но в форме оформления заказа заголовок не отображается. Есть ли какой-либо способ установить опцию для имитации сохранения настроек, но только для одного параметра (title)? Потому что, если я установлю payment_fields функцию (при загрузке оформления заказа), она не сработает.

 function *****_init_payment_class() {
    ...
    class ****Payment extends WC_Payment_Gateway {
        ...
        public function payment_fields() {
            $res = $this->sendRequest('GET', "payment-service/view/$this->payment_service_id");
            if($res['_statusCode'] == 200) {
                $paymentService  = $res['data'];
                $this->title = $paymentService['name'];
  

…wp-contentpluginswoocommercetemplatescheckoutpayment-method.php

 <li class="wc_payment_method payment_method_<?php echo esc_attr( $gateway->id ); ?>">
<input id="payment_method_<?php echo esc_attr( $gateway->id ); ?>" type="radio" class="input-radio" name="payment_method" value="<?php echo esc_attr( $gateway->id ); ?>" <?php checked( $gateway->chosen, true ); ?> data-order_button_text="<?php echo esc_attr( $gateway->order_button_text ); ?>" />

<label for="payment_method_<?php echo esc_attr( $gateway->id ); ?>">
    <?php echo $gateway->get_title(); /* phpcs:ignore WordPress.XSS.EscapeOutput.OutputNotEscaped */ ?> <?php echo $gateway->get_icon(); /* phpcs:ignore WordPress.XSS.EscapeOutput.OutputNotEscaped */ ?>
</label>
<?php if ( $gateway->has_fields() || $gateway->get_description() ) : ?>
    <div class="payment_box payment_method_<?php echo esc_attr( $gateway->id ); ?>" <?php if ( ! $gateway->chosen ) : /* phpcs:ignore Squiz.ControlStructures.ControlSignature.NewlineAfterOpenBrace */ ?>style="display:none;"<?php endif; /* phpcs:ignore Squiz.ControlStructures.ControlSignature.NewlineAfterOpenBrace */ ?>>
        <?php $gateway->payment_fields(); ?>
    </div>
<?php endif; ?>
  

Итак, здесь в основном я вижу <?php echo $ gateway->get_title(); код, где я ожидаю, что будет мой заголовок. Но на самом деле он пуст. Я хочу установить заголовок в хук / функции payment_fields (). Есть ли способ это сделать?

введите описание изображения здесь

Комментарии:

1. Проверить: Документы. woocommerce.com/document/payment-gateway-api