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 / Synchronization / Store.php
woocommerce-multilingual / classes / Synchronization Last commit date
Component 1 week ago Hooks.php 1 week ago Manager.php 1 week ago Store.php 1 week ago
Store.php
154 lines
1 <?php
2
3 namespace WCML\Synchronization;
4
5 use WCML\Utilities\SyncHash;
6
7 class Store {
8
9 const COMPONENT_ATTACHMENTS = 'attachments';
10 const COMPONENT_ATTRIBUTES = 'attributes';
11 const COMPONENT_DOWNLOADABLE_FILES = 'downloadableFiles';
12 const COMPONENT_LINKED = 'linked';
13 const COMPONENT_META = 'meta';
14 const COMPONENT_POST = 'post';
15 const COMPONENT_STOCK = 'stock';
16 const COMPONENT_TAXONOMIES = 'taxonomies';
17 const COMPONENT_VARIATIONS = 'variations';
18 const COMPONENT_VARIATION_ATTACHMENTS = 'variationAttachments';
19 const COMPONENT_VARIATION_TAXONOMIES = 'variationTaxonomies';
20 const COMPONENT_VARIATION_META = 'variationMeta';
21
22 protected $woocommerceWpml;
23
24 protected $sitepress;
25
26 protected $postTranslations;
27
28 protected $termTranslations;
29
30 protected $wpdb;
31
32 protected $syncHashManager;
33
34 public function __construct(
35 \woocommerce_wpml $woocommerceWpml,
36 \SitePress $sitepress,
37 \wpdb $wpdb,
38 SyncHash $syncHashManager
39 ) {
40 $this->woocommerceWpml = $woocommerceWpml;
41 $this->sitepress = $sitepress;
42 $this->wpdb = $wpdb;
43 $this->syncHashManager = $syncHashManager;
44
45 global $wpml_post_translations, $wpml_term_translations;
46 $this->postTranslations = $wpml_post_translations;
47 $this->termTranslations = $wpml_term_translations;
48 }
49
50 public function getComponent( $component ) {
51 switch ( $component ) {
52 case self::COMPONENT_ATTACHMENTS:
53 return new Component\Attachments(
54 $this->woocommerceWpml,
55 $this->sitepress,
56 $this->postTranslations,
57 $this->wpdb,
58 $this->syncHashManager
59 );
60 case self::COMPONENT_ATTRIBUTES:
61 return new Component\Attributes(
62 $this->woocommerceWpml,
63 $this->sitepress,
64 $this->termTranslations,
65 $this->wpdb,
66 $this->syncHashManager
67 );
68 case self::COMPONENT_DOWNLOADABLE_FILES:
69 return new Component\DownloadableFiles(
70 $this->woocommerceWpml,
71 $this->sitepress,
72 $this->postTranslations,
73 $this->wpdb,
74 $this->syncHashManager
75 );
76 case self::COMPONENT_LINKED:
77 return new Component\Linked(
78 $this->woocommerceWpml,
79 $this->sitepress,
80 $this->postTranslations,
81 $this->wpdb,
82 $this->syncHashManager
83 );
84 case self::COMPONENT_META:
85 return new Component\Meta(
86 $this->woocommerceWpml,
87 $this->sitepress,
88 $this->postTranslations,
89 $this->wpdb,
90 $this->syncHashManager
91 );
92 case self::COMPONENT_POST:
93 return new Component\Post(
94 $this->woocommerceWpml,
95 $this->sitepress,
96 $this->postTranslations,
97 $this->wpdb,
98 $this->syncHashManager
99 );
100 case self::COMPONENT_STOCK:
101 return new Component\Stock(
102 $this->woocommerceWpml,
103 $this->sitepress,
104 $this->postTranslations,
105 $this->wpdb,
106 $this->syncHashManager
107 );
108 case self::COMPONENT_TAXONOMIES:
109 return new Component\Taxonomies(
110 $this->woocommerceWpml,
111 $this->sitepress,
112 $this->termTranslations,
113 $this->wpdb,
114 $this->syncHashManager
115 );
116 case self::COMPONENT_VARIATIONS:
117 return new Component\Variations(
118 $this->woocommerceWpml,
119 $this->sitepress,
120 $this->postTranslations,
121 $this->wpdb,
122 $this->syncHashManager
123 );
124 case self::COMPONENT_VARIATION_ATTACHMENTS:
125 return new Component\VariationAttachments(
126 $this->woocommerceWpml,
127 $this->sitepress,
128 $this->termTranslations,
129 $this->wpdb,
130 $this->syncHashManager
131 );
132 case self::COMPONENT_VARIATION_TAXONOMIES:
133 return new Component\VariationTaxonomies(
134 $this->woocommerceWpml,
135 $this->sitepress,
136 $this->termTranslations,
137 $this->wpdb,
138 $this->syncHashManager
139 );
140 case self::COMPONENT_VARIATION_META:
141 return new Component\VariationMeta(
142 $this->woocommerceWpml,
143 $this->sitepress,
144 $this->termTranslations,
145 $this->wpdb,
146 $this->syncHashManager
147 );
148 }
149
150 throw new \Exception( 'Unknown synchronization component.' );
151 }
152
153 }
154