WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru
функция не описана

WC_AJAX::toggle_gateway_enabled() public WC 3.4.0

Toggle payment gateway on or off via AJAX.

{} Это метод класса: WC_AJAX{}

Хуков нет.

Возвращает

Null. Ничего.

Использование

$result = WC_AJAX::toggle_gateway_enabled();

Список изменений

С версии 3.4.0 Введена.

Код WC_AJAX::toggle_gateway_enabled() WC 4.7.0

<?php
public static function toggle_gateway_enabled() {
	if ( current_user_can( 'manage_woocommerce' ) && check_ajax_referer( 'woocommerce-toggle-payment-gateway-enabled', 'security' ) && isset( $_POST['gateway_id'] ) ) {
		// Load gateways.
		$payment_gateways = WC()->payment_gateways->payment_gateways();

		// Get posted gateway.
		$gateway_id = wc_clean( wp_unslash( $_POST['gateway_id'] ) );

		foreach ( $payment_gateways as $gateway ) {
			if ( ! in_array( $gateway_id, array( $gateway->id, sanitize_title( get_class( $gateway ) ) ), true ) ) {
				continue;
			}
			$enabled = $gateway->get_option( 'enabled', 'no' );

			if ( ! wc_string_to_bool( $enabled ) ) {
				if ( $gateway->needs_setup() ) {
					wp_send_json_error( 'needs_setup' );
					wp_die();
				} else {
					$gateway->update_option( 'enabled', 'yes' );
				}
			} else {
				// Disable the gateway.
				$gateway->update_option( 'enabled', 'no' );
			}

			wp_send_json_success( ! wc_string_to_bool( $enabled ) );
			wp_die();
		}
	}

	wp_send_json_error( 'invalid_gateway_id' );
	wp_die();
}