PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / trunk
WPML Multilingual & Multicurrency for WooCommerce vtrunk
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 month ago Hooks.php 1 month ago Manager.php 1 month ago Store.php 1 year ago
Store.php
173 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 /** @var \woocommerce_wpml */
23 protected $woocommerceWpml;
24
25 /** @var \SitePress */
26 protected $sitepress;
27
28 /** @var \WPML_Post_Translation */
29 protected $postTranslations;
30
31 /** @var \WPML_Term_Translation */
32 protected $termTranslations;
33
34 /** @var \wpdb */
35 protected $wpdb;
36
37 /** @var SyncHash */
38 protected $syncHashManager;
39
40 /**
41 * @param \woocommerce_wpml $woocommerceWpml
42 * @param \SitePress $sitepress
43 * @param \wpdb $wpdb
44 * @param SyncHash $syncHashManager
45 */
46 public function __construct(
47 \woocommerce_wpml $woocommerceWpml,
48 \SitePress $sitepress,
49 \wpdb $wpdb,
50 SyncHash $syncHashManager
51 ) {
52 $this->woocommerceWpml = $woocommerceWpml;
53 $this->sitepress = $sitepress;
54 $this->wpdb = $wpdb;
55 $this->syncHashManager = $syncHashManager;
56
57 global $wpml_post_translations, $wpml_term_translations;
58 $this->postTranslations = $wpml_post_translations;
59 $this->termTranslations = $wpml_term_translations;
60 }
61
62 /**
63 * @param string $component
64 *
65 * @return \WCML\Synchronization\Component\Synchronizer
66 *
67 * @throws \Exception
68 */
69 public function getComponent( $component ) {
70 switch ( $component ) {
71 case self::COMPONENT_ATTACHMENTS:
72 return new Component\Attachments(
73 $this->woocommerceWpml,
74 $this->sitepress,
75 $this->postTranslations,
76 $this->wpdb,
77 $this->syncHashManager
78 );
79 case self::COMPONENT_ATTRIBUTES:
80 return new Component\Attributes(
81 $this->woocommerceWpml,
82 $this->sitepress,
83 $this->termTranslations,
84 $this->wpdb,
85 $this->syncHashManager
86 );
87 case self::COMPONENT_DOWNLOADABLE_FILES:
88 return new Component\DownloadableFiles(
89 $this->woocommerceWpml,
90 $this->sitepress,
91 $this->postTranslations,
92 $this->wpdb,
93 $this->syncHashManager
94 );
95 case self::COMPONENT_LINKED:
96 return new Component\Linked(
97 $this->woocommerceWpml,
98 $this->sitepress,
99 $this->postTranslations,
100 $this->wpdb,
101 $this->syncHashManager
102 );
103 case self::COMPONENT_META:
104 return new Component\Meta(
105 $this->woocommerceWpml,
106 $this->sitepress,
107 $this->postTranslations,
108 $this->wpdb,
109 $this->syncHashManager
110 );
111 case self::COMPONENT_POST:
112 return new Component\Post(
113 $this->woocommerceWpml,
114 $this->sitepress,
115 $this->postTranslations,
116 $this->wpdb,
117 $this->syncHashManager
118 );
119 case self::COMPONENT_STOCK:
120 return new Component\Stock(
121 $this->woocommerceWpml,
122 $this->sitepress,
123 $this->postTranslations,
124 $this->wpdb,
125 $this->syncHashManager
126 );
127 case self::COMPONENT_TAXONOMIES:
128 return new Component\Taxonomies(
129 $this->woocommerceWpml,
130 $this->sitepress,
131 $this->termTranslations,
132 $this->wpdb,
133 $this->syncHashManager
134 );
135 case self::COMPONENT_VARIATIONS:
136 return new Component\Variations(
137 $this->woocommerceWpml,
138 $this->sitepress,
139 $this->postTranslations,
140 $this->wpdb,
141 $this->syncHashManager
142 );
143 case self::COMPONENT_VARIATION_ATTACHMENTS:
144 return new Component\VariationAttachments(
145 $this->woocommerceWpml,
146 $this->sitepress,
147 $this->termTranslations,
148 $this->wpdb,
149 $this->syncHashManager
150 );
151 case self::COMPONENT_VARIATION_TAXONOMIES:
152 return new Component\VariationTaxonomies(
153 $this->woocommerceWpml,
154 $this->sitepress,
155 $this->termTranslations,
156 $this->wpdb,
157 $this->syncHashManager
158 );
159 case self::COMPONENT_VARIATION_META:
160 return new Component\VariationMeta(
161 $this->woocommerceWpml,
162 $this->sitepress,
163 $this->termTranslations,
164 $this->wpdb,
165 $this->syncHashManager
166 );
167 }
168
169 throw new \Exception( 'Unknown synchronization component.' );
170 }
171
172 }
173