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 / Component / DownloadableFiles.php
woocommerce-multilingual / classes / Synchronization / Component Last commit date
Attachments.php 1 year ago Attributes.php 4 months ago DownloadableFiles.php 4 months ago Linked.php 10 months ago Meta.php 1 year ago Post.php 3 months ago Stock.php 1 year ago Synchronizer.php 1 year ago SynchronizerForMeta.php 9 months ago Taxonomies.php 4 months ago VariationAttachments.php 1 year ago VariationMeta.php 8 months ago VariationTaxonomies.php 8 months ago Variations.php 1 month ago
DownloadableFiles.php
58 lines
1 <?php
2
3 namespace WCML\Synchronization\Component;
4
5 use WCML_Downloadable_Products;
6
7 class DownloadableFiles extends SynchronizerForMeta {
8
9 /**
10 * @param \WP_Post $product
11 * @param int[] $translationsIds
12 * @param array<int,string> $translationsLanguages
13 */
14 public function run( $product, $translationsIds, $translationsLanguages ) {
15 $settingsFactory = wpml_load_core_tm()->settings_factory();
16 $postmetaFieldSetting = $settingsFactory->post_meta_setting( '_downloadable_files' );
17 $postmetaFieldStatus = $postmetaFieldSetting->status();
18 if ( WPML_IGNORE_CUSTOM_FIELD === $postmetaFieldStatus ) {
19 return;
20 }
21
22 $this->syncFiles( $product->ID, $translationsIds );
23 }
24
25 /**
26 * @param int $productId
27 * @param int[] $translationsIds
28 */
29 public function syncFiles( $productId, $translationsIds ) {
30 $generalProductSync = $this->woocommerceWpml->settings[ WCML_Downloadable_Products::SYNC_MODE_SETTING_KEY ];
31 $customProductSync = get_post_meta( $productId, WCML_Downloadable_Products::SYNC_MODE_META, true );
32
33 if ( $this->isSyncOn( $generalProductSync, $customProductSync ) ) {
34 $this->synchronizeMeta( $productId, $translationsIds, WCML_Downloadable_Products::DOWNLOADABLE_FILES_META );
35 }
36 }
37
38 /**
39 * @param string $generalProductSync
40 * @param string $customProductSync
41 */
42 private function isSyncOn( $generalProductSync, $customProductSync ): bool {
43 if ( WCML_Downloadable_Products::SYNC_MODE_META_AUTO === $customProductSync ) {
44 return true;
45 }
46
47 if ( WCML_Downloadable_Products::SYNC_MODE_META_SELF === $customProductSync ) {
48 return false;
49 }
50
51 if ( WCML_Downloadable_Products::SYNC_MODE_SETTING_AUTO === $generalProductSync ) {
52 return true;
53 }
54
55 return false;
56 }
57 }
58