Описание woocommerce_payment_gateway_supports
— Filter
Хук woocommerce_payment_gateway_supports позволяет изменять список функций, которые поддерживает конкретный платежный шлюз. Он срабатывает при инициализации платежных шлюзов и позволяет разработчикам добавлять или удалять функциональность для своих шлюзов
Примеры использования
Пример добавления поддержки возвратов для конкретного платежного шлюза:
				
					add_filter('woocommerce_payment_gateway_supports', function($supports, $gateway_id) {
   if ('my_custom_gateway' === $gateway_id) {
       $supports[] = 'refunds';
   }
   return $supports;
}, 10, 2); 
				
			В этом примере мы добавляем поддержку возвратов для шлюза с идентификатором ‘my_custom_gateway’.
Пример удаления поддержки подписок для платежного шлюза:
				
					add_filter('woocommerce_payment_gateway_supports', function($supports, $gateway_id) {
   if ('my_subscription_gateway' === $gateway_id) {
       $supports = array_diff($supports, ['subscriptions']);
   }
   return $supports;
}, 10, 2); 
				
			Этот пример удаляет поддержку подписок для шлюза ‘my_subscription_gateway’.
Пример добавления поддержки товаров для нескольких шлюзов:
				
					add_filter('woocommerce_payment_gateway_supports', function($supports, $gateway_id) {
   $supported_gateways = ['gateway1', 'gateway2'];
   if (in_array($gateway_id, $supported_gateways)) {
       $supports[] = 'products';
   }
   return $supports;
}, 10, 2); 
				
			Здесь мы добавляем поддержку товаров для нескольких платежных шлюзов.
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить функциональность платежных шлюзов в WooCommerce
– Производительность
Хук не должен значительно повлиять на производительность, так как изменения касаются только массива поддерживаемых функций
– Предупреждения
Обязательно проверяйте существующие функции перед их добавлением или удалением, чтобы избежать конфликтов
Альтернативы
Тип: filter
Этот хук позволяет изменять список доступных платежных шлюзов в WooCommerce
Используйте его, если необходимо добавить или удалить сам шлюз из списка доступных