Files
2026-04-28 15:13:50 +02:00

77 lines
2.0 KiB
PHP

<?php
/**
* Main functions to start MultiCurrency class.
*
* @package WooCommerce\Payments
*/
defined( 'ABSPATH' ) || exit;
/**
* Load customer multi-currency if feature is enabled or if it is the setup page.
*/
function wcpay_multi_currency_onboarding_check() {
$is_setup_page = false;
// Skip checking the HTTP referer if it is a cron job.
if ( ! defined( 'DOING_CRON' ) ) {
$http_referer = sanitize_text_field( wp_unslash( $_SERVER['HTTP_REFERER'] ?? '' ) );
if ( ! empty( $http_referer ) ) {
$is_setup_page = strpos( $http_referer, 'multi-currency-setup' ) !== false;
}
}
return $is_setup_page;
}
if ( ! WC_Payments_Features::is_customer_multi_currency_enabled() && ! wcpay_multi_currency_onboarding_check() ) {
return;
}
/**
* Returns the MultiCurrency singleton.
*
* @return WCPay\MultiCurrency\MultiCurrency
*/
function WC_Payments_Multi_Currency() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
static $instance = null;
if ( is_null( $instance ) ) {
$instance = new WCPay\MultiCurrency\MultiCurrency(
WC_Payments::get_settings_service(),
WC_Payments::get_payments_api_client(),
WC_Payments::get_account_service(),
WC_Payments::get_localization_service(),
WC_Payments::get_database_cache()
);
$instance->init_hooks();
}
return $instance;
}
add_action( 'plugins_loaded', 'WC_Payments_Multi_Currency', 12 );
register_deactivation_hook( WCPAY_PLUGIN_FILE, 'wcpay_multi_currency_deactivated' );
/**
* Plugin deactivation hook.
*/
function wcpay_multi_currency_deactivated() {
WCPay\MultiCurrency\MultiCurrency::remove_woo_admin_notes();
}
if ( ! function_exists( 'wc_get_currency_switcher_markup' ) ) {
/**
* Gets the switcher widget markup.
*
* @param array $instance The widget's instance settings.
* @param array $args The widget's arguments.
*
* @return string The widget markup.
*/
function wc_get_currency_switcher_markup( array $instance = [], array $args = [] ): string {
return WC_Payments_Multi_Currency()->get_switcher_widget_markup( $instance, $args );
}
}