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 / WcEmailSettings / MultilingualHooks.php
woocommerce-multilingual / classes / WcEmailSettings Last commit date
MultilingualHooks.php 1 week ago
MultilingualHooks.php
63 lines
1 <?php
2
3 namespace WCML\WcEmailSettings;
4
5 use Automattic\WooCommerce\Utilities\FeaturesUtil;
6 use WPML\LIB\WP\Hooks as WPHooks;
7
8 use function WPML\FP\spreadArgs;
9
10 class MultilingualHooks implements \IWPML_Frontend_Action, \IWPML_Backend_Action {
11 const WCML_EMAIL_HEADER_ALIGNMENT_ID = 'wcml_email_header_alignment';
12
13 const MULTILINGUAL_HEADER_ALIGNMENT_OFF = 'off';
14 const MULTILINGUAL_HEADER_ALIGNMENT_ON = 'on';
15
16 public function add_hooks() {
17 WPHooks::onFilter( 'woocommerce_email_settings' )
18 ->then( spreadArgs( [ $this, 'woocommerce_email_settings_add_wcml_header_alignment' ] ) );
19
20 WPHooks::onFilter( 'pre_option_woocommerce_email_header_alignment' )
21 ->then( spreadArgs( [ $this, 'pre_option_woocommerce_email_header_alignment' ] ) );
22 }
23
24 public function woocommerce_email_settings_add_wcml_header_alignment( $settings ) {
25 $email_improvements_enabled = FeaturesUtil::feature_is_enabled( 'email_improvements' );
26
27 $new_settings = [];
28
29 $wcml_option = [
30 'title' => __( 'Header alignment for translations', 'woocommerce-multilingual' ),
31 'id' => self::WCML_EMAIL_HEADER_ALIGNMENT_ID,
32 /* translators: %s is an HTML break line - after about 65 characters the text will no longer be visible */
33 'desc' => sprintf( __( 'Automatically align email headers based on%slanguage direction (right-to-left or left-to-right)."', 'woocommerce-multilingual' ), '<br >' ),
34 'default' => self::MULTILINGUAL_HEADER_ALIGNMENT_OFF,
35 'type' => 'radio',
36 'options' => [
37 self::MULTILINGUAL_HEADER_ALIGNMENT_OFF => __( 'Off – use the "Header alignment" setting above', 'woocommerce-multilingual' ),
38 self::MULTILINGUAL_HEADER_ALIGNMENT_ON => __( 'On – align automatically', 'woocommerce-multilingual' ),
39 ],
40 'row_class' => $email_improvements_enabled ? '' : 'disabled',
41 ];
42
43 foreach ( $settings as $setting ) {
44 $new_settings[] = $setting;
45
46 $settingId = $setting['id'] ?? null;
47 if ( 'woocommerce_email_header_alignment' === $settingId ) {
48 $new_settings[] = $wcml_option;
49 }
50 }
51
52 return $new_settings;
53 }
54
55 public function pre_option_woocommerce_email_header_alignment( $value ) {
56 if ( self::MULTILINGUAL_HEADER_ALIGNMENT_ON !== get_option( self::WCML_EMAIL_HEADER_ALIGNMENT_ID ) ) {
57 return $value;
58 }
59
60 return is_rtl() ? 'right' : 'left';
61 }
62 }
63