woocommerce-multilingual
/
inc
/
template-classes
/
store-urls
/
class-wcml-store-urls-edit-base-ui.php
class-wcml-store-urls-edit-base-ui.php
4 weeks ago
class-wcml-store-urls-translation-statuses-ui.php
4 weeks ago
class-wcml-store-urls-ui.php
4 weeks ago
class-wcml-store-urls-edit-base-ui.php
79 lines
| 1 | <?php |
| 2 | |
| 3 | class WCML_Store_URLs_Edit_Base_UI extends WCML_Templates_Factory { |
| 4 | |
| 5 | private $base; |
| 6 | private $language; |
| 7 | private $woocommerce_wpml; |
| 8 | private $sitepress; |
| 9 | |
| 10 | |
| 11 | public function __construct( $base, $language, $woocommerce_wpml, $sitepress ) { |
| 12 | parent::__construct(); |
| 13 | |
| 14 | $this->base = $base; |
| 15 | $this->language = $language; |
| 16 | $this->woocommerce_wpml = $woocommerce_wpml; |
| 17 | $this->sitepress = $sitepress; |
| 18 | } |
| 19 | |
| 20 | public function get_model() { |
| 21 | |
| 22 | $source_language = $this->woocommerce_wpml->url_translation->get_source_slug_language( $this->base ); |
| 23 | $active_languages = $this->sitepress->get_active_languages(); |
| 24 | |
| 25 | $model = [ |
| 26 | 'original_base' => $this->base, |
| 27 | 'language' => $this->language, |
| 28 | 'translated_base_value' => '', |
| 29 | 'source_language' => $source_language, |
| 30 | 'data' => $this->get_data_for_base(), |
| 31 | 'orig_flag_url' => $this->sitepress->get_flag_url( $source_language ), |
| 32 | 'orig_display_name' => $this->sitepress->get_display_language_name( $source_language, 'en' ), |
| 33 | 'trnsl_flag_url' => $this->sitepress->get_flag_url( $this->language ), |
| 34 | 'trnsl_display_name' => $active_languages[ $this->language ]['english_name'], |
| 35 | 'strings' => [ |
| 36 | 'orig' => __( 'Original', 'woocommerce-multilingual' ), |
| 37 | 'trnsl_to' => __( 'Translation to', 'woocommerce-multilingual' ), |
| 38 | 'cancel' => __( 'Cancel', 'woocommerce-multilingual' ), |
| 39 | 'save' => __( 'Save', 'woocommerce-multilingual' ), |
| 40 | ], |
| 41 | ]; |
| 42 | |
| 43 | return $model; |
| 44 | } |
| 45 | |
| 46 | public function get_data_for_base() { |
| 47 | |
| 48 | $args = []; |
| 49 | |
| 50 | if ( $this->base == 'shop' ) { |
| 51 | $original_shop_id = wc_get_page_id( 'shop' ); |
| 52 | $translated_base = apply_filters( 'wpml_object_id', $original_shop_id, 'page', false, $this->language ); |
| 53 | if ( ! is_null( $translated_base ) ) { |
| 54 | $args['translated_base_value'] = urldecode( get_post( $translated_base )->post_name ); |
| 55 | } |
| 56 | |
| 57 | $args['original_base_value'] = urldecode( get_post( $original_shop_id )->post_name ); |
| 58 | $args['label_name'] = __( 'Product Shop Base', 'woocommerce-multilingual' ); |
| 59 | } else { |
| 60 | $translated_base = $this->woocommerce_wpml->url_translation->get_base_translation( $this->base, $this->language ); |
| 61 | $args['translated_base_value'] = $translated_base['translated_base']; |
| 62 | $args['original_base_value'] = $translated_base['original_value']; |
| 63 | $args['label_name'] = $translated_base['name']; |
| 64 | } |
| 65 | |
| 66 | return $args; |
| 67 | } |
| 68 | |
| 69 | public function init_template_base_dir() { |
| 70 | $this->template_paths = [ |
| 71 | WCML_PLUGIN_PATH . '/templates/store-urls/', |
| 72 | ]; |
| 73 | } |
| 74 | |
| 75 | public function get_template() { |
| 76 | return 'edit-base.twig'; |
| 77 | } |
| 78 | } |
| 79 |