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 / inc / translation-editor / class-wcml-page-builders.php
woocommerce-multilingual / inc / translation-editor Last commit date
class-wcml-downloadable-products.php 4 weeks ago class-wcml-editor-save-filters.php 4 weeks ago class-wcml-editor-ui-product-job.php 4 weeks ago class-wcml-editor-ui-wysiwyg-field.php 5 years ago class-wcml-page-builders.php 4 weeks ago class-wcml-synchronize-product-data.php 4 weeks ago class-wcml-synchronize-variations-data.php 4 weeks ago class-wcml-translation-editor.php 4 weeks ago class-wcml-wc-admin-duplicate-product.php 4 weeks ago
class-wcml-page-builders.php
108 lines
1 <?php
2
3 class WCML_Page_Builders {
4
5 private $sitepress;
6
7 public function __construct( $sitepress ) {
8 $this->sitepress = $sitepress;
9 }
10
11 public function get_page_builders_string_packages( $product_id ) {
12 return apply_filters( 'wpml_st_get_post_string_packages', false, $product_id );
13 }
14
15 public function get_page_builders_strings( $product_id, $target_language ) {
16
17 $string_packages = $this->get_page_builders_string_packages( $product_id );
18 $translation_package = [];
19
20 if ( $string_packages ) {
21
22 foreach ( $string_packages as $package_id => $string_package ) {
23
24 $translation_package[ $package_id ] = [
25 'title' => $string_package->title,
26 'strings' => [],
27 ];
28
29 $strings = $string_package->get_package_strings();
30
31 $translated_strings = $string_package->get_translated_strings( [] );
32
33 foreach ( $strings as $string ) {
34
35 if ( isset( $translated_strings[ $string->name ][ $target_language ] ) ) {
36 $string->translated_value = $translated_strings[ $string->name ][ $target_language ]['value'];
37 }
38
39 $translation_package[ $package_id ]['strings'][] = $string;
40 }
41 }
42 }
43
44 return $translation_package;
45
46 }
47
48 public function get_page_builders_strings_section( $data, $product_id, $target_language ) {
49
50 $string_packages = $this->get_page_builders_strings( $product_id, $target_language );
51 $strings_section = false;
52
53 foreach ( $string_packages as $string_package ) {
54 $strings_section = new WPML_Editor_UI_Field_Section( $string_package['title'] );
55
56 if ( isset( $string_package['strings'] ) ) {
57 foreach ( $string_package['strings'] as $string ) {
58 $field_label = apply_filters( 'wpml_string_title_from_id', false, $string->id );
59 $strings_section->add_field( new WCML_Editor_UI_WYSIWYG_Field( $string->name, $field_label, $data, true ) );
60 }
61 }
62 }
63
64 return $strings_section;
65 }
66
67 public function page_builders_data( $element_data, $product_id, $target_language ) {
68
69 $string_packages = $this->get_page_builders_strings( $product_id, $target_language );
70
71 foreach ( $string_packages as $string_package ) {
72
73 if ( isset( $string_package['strings'] ) ) {
74 foreach ( $string_package['strings'] as $string ) {
75 $element_data[ $string->name ] = [ 'original' => $string->value ];
76 if ( isset( $string->translated_value ) ) {
77 $element_data[ $string->name ]['translation'] = $string->translated_value;
78 }
79 }
80 }
81 }
82
83 return $element_data;
84 }
85
86 public function save_page_builders_strings( $translations, $product_id, $target_language ) {
87
88 $string_packages = $this->get_page_builders_strings( $product_id, $target_language );
89
90 foreach ( $string_packages as $string_package ) {
91
92 if ( isset( $string_package['strings'] ) ) {
93 foreach ( $string_package['strings'] as $string ) {
94
95 do_action(
96 'wpml_add_string_translation',
97 $string->id,
98 $target_language,
99 $translations[ md5( $string->name ) ],
100 $this->sitepress->get_wp_api()->constant( 'ICL_TM_COMPLETE' )
101 );
102
103 }
104 }
105 }
106 }
107 }
108