currency-switcher
4 weeks ago
multi-currency
4 weeks ago
setup
4 weeks ago
status
4 weeks ago
store-urls
4 weeks ago
class-wcml-currencies-dropdown-ui.php
5 years ago
class-wcml-custom-files-ui.php
4 weeks ago
class-wcml-languages-upgrade-notice.php
4 years ago
class-wcml-menus-wrap-base.php
4 weeks ago
class-wcml-menus-wrap.php
4 weeks ago
class-wcml-multilingual-ui.php
9 months ago
class-wcml-not-translatable-attributes.php
4 weeks ago
class-wcml-pointer-ui.php
1 year ago
class-wcml-removed-cart-items-ui.php
4 weeks ago
class-wcml-settings-ui.php
4 weeks ago
class-wcml-st-taxonomy-ui.php
11 months ago
class-wcml-sync-taxonomy.php
4 weeks ago
class-wcml-templates-factory.php
4 weeks ago
class-wcml-troubleshooting-ui.php
4 weeks ago
class-wcml-sync-taxonomy.php
68 lines
| 1 | <?php |
| 2 | |
| 3 | use WCML\Utilities\WCTaxonomies; |
| 4 | |
| 5 | class WCML_Sync_Taxonomy extends WCML_Templates_Factory { |
| 6 | |
| 7 | private $woocommerce_wpml; |
| 8 | private $taxonomy; |
| 9 | private $taxonomy_obj; |
| 10 | |
| 11 | public function __construct( $woocommerce_wpml, $taxonomy, $taxonomy_obj ) { |
| 12 | parent::__construct(); |
| 13 | |
| 14 | $this->woocommerce_wpml = $woocommerce_wpml; |
| 15 | $this->taxonomy = $taxonomy; |
| 16 | $this->taxonomy_obj = $taxonomy_obj; |
| 17 | } |
| 18 | |
| 19 | public function get_model() { |
| 20 | |
| 21 | $wcml_settings = $this->woocommerce_wpml->get_settings(); |
| 22 | $attribute_taxonomies = wc_get_attribute_taxonomies(); |
| 23 | foreach ( $attribute_taxonomies as $a ) { |
| 24 | $attribute_taxonomies_arr[] = WCTaxonomies::TAXONOMY_PREFIX_ATTRIBUTE . $a->attribute_name; |
| 25 | } |
| 26 | |
| 27 | $model = [ |
| 28 | 'taxonomy' => $this->taxonomy, |
| 29 | 'attribute_taxonomies' => isset( $attribute_taxonomies_arr ) && in_array( $this->taxonomy, $attribute_taxonomies_arr ), |
| 30 | 'display_attr' => isset( $wcml_settings['sync_variations'] ) && $wcml_settings['sync_variations'] ? '' : 'display: none', |
| 31 | 'display_tax' => ( isset( $wcml_settings[ 'sync_' . $this->taxonomy ] ) && $wcml_settings[ 'sync_' . $this->taxonomy ] ) ? '' : 'display: none', |
| 32 | 'loader_url' => \WCML\functions\assetLink( '/res/img/ajax-loader.gif' ), |
| 33 | 'vars_to_create' => $wcml_settings['variations_needed'][ $this->taxonomy ] ?? false, |
| 34 | 'tax_name' => $this->taxonomy_obj->labels->name, |
| 35 | 'tax_singular_name' => '<i>' . $this->taxonomy_obj->labels->singular_name . '</i>', |
| 36 | 'strings' => [ |
| 37 | 'sync_update' => __( 'Synchronize attributes and update product variations', 'woocommerce-multilingual' ), |
| 38 | 'auto_generate' => __( 'This will automatically generate variations for translated products corresponding to recently translated attributes.', 'woocommerce-multilingual' ), |
| 39 | /* translators: %s is a number of product variations */ |
| 40 | 'vars_to_create' => __( 'Currently, there are %s variations that need to be created.', 'woocommerce-multilingual' ), |
| 41 | /* translators: %s is a taxonomy name */ |
| 42 | 'sync_in_cont' => __( 'Synchronize %s assignment in content', 'woocommerce-multilingual' ), |
| 43 | /* translators: %s is a taxonomy name */ |
| 44 | 'auto_apply' => __( 'This action lets you automatically apply the %s taxonomy to your content in different languages. It will scan the original content and apply the same taxonomy to translated content.', 'woocommerce-multilingual' ), |
| 45 | 'untranslated_warn' => __( 'You have untranslated terms!', 'woocommerce-multilingual' ), |
| 46 | ], |
| 47 | 'nonces' => [ |
| 48 | 'sync_product_variations' => wp_nonce_field( 'wcml_sync_product_variations', 'wcml_nonce', $referrer = false, $echo = false ), |
| 49 | 'sync_taxonomies' => wp_nonce_field( 'wcml_sync_taxonomies_in_content_preview', 'wcml_sync_taxonomies_in_content_preview_nonce', $referrer = false, $echo = false ), |
| 50 | ], |
| 51 | ]; |
| 52 | |
| 53 | return $model; |
| 54 | |
| 55 | } |
| 56 | |
| 57 | protected function init_template_base_dir() { |
| 58 | $this->template_paths = [ |
| 59 | WCML_PLUGIN_PATH . '/templates/', |
| 60 | ]; |
| 61 | } |
| 62 | |
| 63 | public function get_template() { |
| 64 | return 'sync-taxonomy.twig'; |
| 65 | } |
| 66 | |
| 67 | } |
| 68 |