Расширение WooCommerce - применимый хук при перенаправлении на конечную точку «Оплата» - PullRequest
0 голосов
/ 26 апреля 2019

Я интегрирую плагин WooCommerce для платежного шлюза, и у меня есть требование встроить шлюз в iframe.Я перенаправляю с помощью приведенного ниже кода в конечную точку Pay (маршрут /order-pay по умолчанию), где я хотел бы включить iframe, где процесс оплаты будет продолжен.

Кто-нибудьзнаете о подходящем хуке, в котором я загружаю необходимые JS-скрипты для инициализации iframe в шаблоне заказа-оплаты?

function process_payment( $order_id ) {
  global $woocommerce;
  $order = new WC_Order( $order_id );
  $order->update_status( 'pending-payment', __( 'Awaiting payment', 'some-domain' ) );

  return array(
    'result'   => 'success',
    'redirect' => $order->get_checkout_payment_url( $on_checkout = true )
  );
}

1 Ответ

0 голосов
/ 29 апреля 2019

Не удалось найти подходящий хук WooCommerce для страницы order-pay. Я решил добавить действие для wp_enqueue_scripts и загружать свои сценарии только в том случае, если активен соответствующий маршрут.

В моем конструкторе плагинов:

function __contstruct {
  // other stuff
  add_action( 'wp_enqueue_scripts', array( $this, 'load_my_order_pay_scripts' ) );
}

Функция загрузки моих скриптов:

public function load_my_order_pay_scripts() {
  if( !is_wc_endpoint_url( 'order-pay' ) ) return;

  global $wp;
  $order_id = $wp->query_vars['order-pay'];
  $order = wc_get_order( $order_id );

  wp_enqueue_script( 'my-js-sdk', 'http://my.cdn.com/my-js-sdk.js', true );
  wp_register_script( 'my-plugin-script', plugin_dir_url( __FILE__ ) . '/js/my-plugin-script.js', true );
  wp_localize_script( 'my-plugin-script', 'params', $this->script_parameters, true ); // I need to pass my script some data
  wp_enqueue_script( 'my-plugin-script', array('my-js-sdk'), true ); // my plugin's JS is dependent on my SDK
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...