PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / 5.5.7
WPML Multilingual & Multicurrency for WooCommerce v5.5.7
5.5.7 5.3.8 5.3.9 5.4.3 5.4.4 5.4.5 5.5.1 5.5.1.1 5.5.2.2 5.5.2.3 5.5.3 5.5.3.1 5.5.4 5.5.5 5.5.6 trunk 0.9 1.0 1.1 1.2 1.3 1.4 1.5 2.0 2.2 2.3 2.3.1 2.3.2 3.0 3.0.1 3.1 3.2 3.2.1 3.2.2 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.4 3.4.1 3.4.2 3.4.3 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.6 3.6.1 3.6.10 3.6.11 3.6.2 3.6.3 3.6.4 3.6.5 3.6.5.1 3.6.6 3.6.7 3.6.8 3.6.9 3.7 3.7.1 3.7.10 3.7.11 3.7.12 3.7.13 3.7.14 3.7.15 3.7.16 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.9.0 3.9.1 3.9.1.1 3.9.2 3.9.3 3.9.4 3.9.5 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.10.4 4.11.2 4.11.3.2 4.11.5 4.11.6 4.12.1 4.12.4 4.12.5 4.12.6 4.2.0 4.2.0.1 4.2.1 4.2.1.1 4.2.10 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.7.1 4.2.8 4.2.8.1 4.2.9 4.3.0 4.3.1 4.3.2 4.3.2.1 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.4.0 4.4.1 4.4.2 4.4.2.1 4.5.0 4.6.0 4.6.1 4.6.2 4.6.2.1 4.6.3 4.6.5 4.6.6 4.6.7 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.9.0 4.9.1 5.0.1 5.0.2 5.1.1 5.1.2 5.1.3 5.2.0 5.2.1 5.3.2 5.3.3.1 5.3.4 5.3.5 5.3.6 5.3.7
woocommerce-multilingual / classes / AdminNotices / MultiCurrencyMissing.php
woocommerce-multilingual / classes / AdminNotices Last commit date
CachePlugins.php 1 week ago CurrencySwitcherUseTwigTemplate.php 1 week ago ExportImport.php 1 week ago MultiCurrencyMissing.php 1 week ago RestrictedScreens.php 1 week ago Review.php 1 week ago TranslationControlMovedNotice.php 1 week ago WizardNotice.php 1 week ago
MultiCurrencyMissing.php
64 lines
1 <?php
2
3 namespace WCML\AdminNotices;
4
5 use woocommerce_wpml;
6 use WPML\FP\Obj;
7 use WPML_Notices;
8
9 class MultiCurrencyMissing implements \IWPML_Backend_Action, \IWPML_DIC_Action {
10
11 const NOTICE_ID = 'wcml-multi-currency-missing';
12
13 private $wcml;
14
15 private $notices;
16
17 public function __construct( woocommerce_wpml $wcml, WPML_Notices $notices ) {
18 $this->wcml = $wcml;
19 $this->notices = $notices;
20 }
21
22 public function add_hooks() {
23 if ( wcml_is_multi_currency_on() ) {
24 add_action( 'admin_init', [ $this, 'initNotice' ] );
25 }
26 }
27
28 public function initNotice() {
29 $notice = $this->notices->get_notice( self::NOTICE_ID );
30 $needsNotice = $this->hasOneUniqueCurrency();
31
32 if ( $needsNotice && ! $notice ) {
33 $this->addNotice();
34 } elseif ( ! $needsNotice && $notice ) {
35 $this->removeNotice();
36 }
37 }
38
39 private function addNotice() {
40 $text = '<h2>' . esc_html__( "You haven't added any secondary currencies", 'woocommerce-multilingual' ) . '</h2>';
41 $text .= '<p>' . esc_html__( "Please add another currency to fully utilize multicurrency mode. If you do not need multiple currencies, you can disable this setting to improve your site's performance.", 'woocommerce-multilingual' ) . '</p>';
42 $text .= sprintf('<a href="%s">%s</a>',
43 \WCML\Utilities\AdminUrl::getMultiCurrencyTab(),
44 esc_html__( 'Configure multicurrency mode', 'woocommerce-multilingual' )
45 );
46
47 $notice = $this->notices->create_notice( self::NOTICE_ID, $text );
48 $notice->set_css_class_types( 'notice-warning' );
49 $notice->set_restrict_to_screen_ids( RestrictedScreens::get() );
50 $notice->set_dismissible( true );
51
52 $this->notices->add_notice( $notice );
53 }
54
55 private function removeNotice() {
56 $notice = $this->notices->get_notice( self::NOTICE_ID );
57 $this->notices->remove_notice( $notice->get_group(), $notice->get_id() );
58 }
59
60 private function hasOneUniqueCurrency() {
61 return count( (array) Obj::path( [ 'settings', 'currency_options' ], $this->wcml ) ) <= 1;
62 }
63 }
64