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

Automattic\WooCommerce\Blocks\Payments

Api::verify_payment_methods_dependencies() public WC 1.0

Verify all dependencies of registered payment methods have been registered. If not, remove that payment method script from the list of dependencies of Cart and Checkout block scripts so it doesn't break the blocks and show an error in the admin.

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

Хуков нет.

Возвращает

null. Ничего.

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

$Api = new Api();
$Api->verify_payment_methods_dependencies();

Код Api::verify_payment_methods_dependencies() WC 5.4.1

<?php
public function verify_payment_methods_dependencies() {
	$wp_scripts             = wp_scripts();
	$payment_method_scripts = $this->payment_method_registry->get_all_active_payment_method_script_dependencies();

	foreach ( $payment_method_scripts as $payment_method_script ) {
		if (
			! array_key_exists( $payment_method_script, $wp_scripts->registered ) ||
			! property_exists( $wp_scripts->registered[ $payment_method_script ], 'deps' )
		) {
			continue;
		}
		$deps = $wp_scripts->registered[ $payment_method_script ]->deps;
		foreach ( $deps as $dep ) {
			if ( ! wp_script_is( $dep, 'registered' ) ) {
				$error_handle  = $dep . '-dependency-error';
				$error_message = sprintf(
					'Payment gateway with handle \'%1$s\' has been deactivated in Cart and Checkout blocks because its dependency \'%2$s\' is not registered. Read the docs about registering assets for payment methods: https://github.com/woocommerce/woocommerce-gutenberg-products-block/blob/trunk/docs/extensibility/payment-method-integration.md#registering-assets',
					esc_html( $payment_method_script ),
					esc_html( $dep )
				);

				// phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
				error_log( $error_message );

				// phpcs:ignore WordPress.WP.EnqueuedResourceParameters.NotInFooter,WordPress.WP.EnqueuedResourceParameters.MissingVersion
				wp_register_script( $error_handle, '' );
				wp_enqueue_script( $error_handle );
				wp_add_inline_script(
					$error_handle,
					sprintf( 'console.error( "%s" );', $error_message )
				);

				$cart_checkout_scripts = [ 'wc-cart-block', 'wc-cart-block-frontend', 'wc-checkout-block', 'wc-checkout-block-frontend' ];
				foreach ( $cart_checkout_scripts as $script_handle ) {
					if (
						! array_key_exists( $script_handle, $wp_scripts->registered ) ||
						! property_exists( $wp_scripts->registered[ $script_handle ], 'deps' )
					) {
						continue;
					}
					// Remove payment method script from dependencies.
					$wp_scripts->registered[ $script_handle ]->deps = array_diff(
						$wp_scripts->registered[ $script_handle ]->deps,
						[ $payment_method_script ]
					);
				}
			}
		}
	}
}