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 / compatibility / WcProductAddons / SharedHooks.php
woocommerce-multilingual / compatibility / WcProductAddons Last commit date
Factory.php 2 weeks ago JobHooks.php 2 weeks ago MulticurrencyHooks.php 2 weeks ago SharedHooks.php 2 weeks ago class-wcml-product-addons.php 2 weeks ago
SharedHooks.php
57 lines
1 <?php
2
3 namespace WCML\Compatibility\WcProductAddons;
4
5 use WPML\FP\Fns;
6
7 class SharedHooks implements \IWPML_Action {
8
9 const TEMPLATE_FOLDER = '/templates/compatibility/';
10 const ADDONS_OPTION_KEY = '_product_addons';
11
12 public function add_hooks() {
13 $withoutRecursion = Fns::withoutRecursion( Fns::noop() );
14
15 add_action( 'init', [ $this, 'loadAssets' ] );
16 add_action( 'updated_post_meta', $withoutRecursion( [ $this, 'triggerGlobalAddonUpdated' ] ), 10, 4 );
17 add_action( 'added_post_meta', $withoutRecursion( [ $this, 'triggerGlobalAddonUpdated' ] ), 10, 4 );
18 }
19
20 public function loadAssets() {
21 global $pagenow;
22
23 $isProductPage = 'post.php' === $pagenow && isset( $_GET['post'] );
24 $isProductNewPage = 'post-new.php' === $pagenow && isset( $_GET['post_type'] ) && 'product' === $_GET['post_type'];
25
26 if ( $isProductPage || $isProductNewPage || self::isGlobalAddonEditPage() ) {
27 wp_enqueue_script( 'wcml-product-addons', WCML_PLUGIN_URL . '/compatibility/res/js/wcml-product-addons' . WCML_JS_MIN . '.js', [ 'jquery' ], WCML_VERSION );
28 wp_enqueue_style( 'wcml-product-addons', WCML_PLUGIN_URL . '/compatibility/res/css/wcml-product-addons.css', [ 'wpml-dialog' ], WCML_VERSION );
29 }
30 }
31
32 public static function isGlobalAddonEditPage() {
33 global $pagenow;
34
35 return 'edit.php' === $pagenow &&
36 isset( $_GET['post_type'] ) &&
37 'product' === $_GET['post_type'] &&
38 isset( $_GET['page'] ) &&
39 ( 'global_addons' === $_GET['page'] || 'addons' === $_GET['page'] );
40 }
41
42 public function triggerGlobalAddonUpdated( $metaId, $id, $metaKey, $addons ) {
43 if ( self::ADDONS_OPTION_KEY === $metaKey && self::isGlobalAddon( $id ) ) {
44 do_action( 'wcml_product_addons_global_updated', $metaId, $id, $metaKey, $addons );
45 }
46 }
47
48 public static function isGlobalAddon( $postId ) {
49 return 'global_product_addon' === get_post_type( $postId );
50 }
51
52 public static function getProductAddons( $productId ) {
53 $data = get_post_meta( $productId, self::ADDONS_OPTION_KEY, true );
54 return $data ? maybe_unserialize( $data ) : [];
55 }
56 }
57