Automattic\WooCommerce\Internal\Admin\Settings\PaymentsProviders
PaymentGateway::get_settings_url
Get the settings URL for a payment gateway.
Метод класса: PaymentGateway{}
Хуков нет.
Возвращает
Строку. The settings URL for the payment gateway.
Использование
$PaymentGateway = new PaymentGateway(); $PaymentGateway->get_settings_url( $payment_gateway ): string;
- $payment_gateway(WC_Payment_Gateway) (обязательный)
- The payment gateway object.
Код PaymentGateway::get_settings_url() PaymentGateway::get settings url WC 10.5.0
public function get_settings_url( WC_Payment_Gateway $payment_gateway ): string {
try {
if ( method_exists( $payment_gateway, 'get_settings_url' ) && is_callable( array( $payment_gateway, 'get_settings_url' ) ) ) {
$url = trim( (string) $payment_gateway->get_settings_url() );
if ( ! empty( $url ) && ! wc_is_valid_url( $url ) ) {
// Back-compat: normalize common relative admin URLs.
$url = ltrim( $url, '/' );
// Remove the '/wp-admin/' prefix if it exists.
if ( 0 === strpos( $url, 'wp-admin/' ) ) {
$url = substr( $url, strlen( 'wp-admin/' ) );
}
if ( 0 === strpos( $url, 'admin.php' ) || 0 === strpos( $url, '/admin.php' ) ) {
$url = admin_url( ltrim( $url, '/' ) );
}
}
if ( ! empty( $url ) && wc_is_valid_url( $url ) ) {
return add_query_arg(
array(
'from' => Payments::FROM_PAYMENTS_SETTINGS,
),
$url
);
}
}
} catch ( Throwable $e ) {
// Do nothing but log so we can investigate.
SafeGlobalFunctionProxy::wc_get_logger()->debug(
'Failed to get gateway settings URL: ' . $e->getMessage(),
array(
'gateway' => $payment_gateway->id,
'source' => 'settings-payments',
'exception' => $e,
)
);
}
// If we couldn't get a valid settings URL from the gateway, fall back to a general gateway settings URL.
return Utils::wc_payments_settings_url(
null,
array(
'section' => strtolower( $payment_gateway->id ),
'from' => Payments::FROM_PAYMENTS_SETTINGS,
)
);
}