コード例 #1
0
 /**
  * @param null|WP_Post $post
  */
 public function render_languages($post = null)
 {
     if (!$post || !is_post_type_translated($post->post_type)) {
         return;
     }
     $this->set_post($post);
     $this->init_post_data();
     $this->post_edit_languages_duplicate_of();
     ob_start();
     $this->post_edit_languages_dropdown();
     $this->connect_translations();
     $this->translation_of();
     $this->languages_actions();
     $this->copy_from_original($post);
     do_action('icl_post_languages_options_after');
     $contents = ob_get_clean();
     echo $this->is_a_duplicate() ? '<span style="display:none">' . $contents . '</span>' : $contents;
 }
コード例 #2
0
 function save_variation_descriptions_translations($post_id, $data, $job)
 {
     $language = $job->language_code;
     foreach ($data as $data_key => $value) {
         if ($value['finished'] && strpos($value['field_type'], 'wc_variation_description:') === 0) {
             $variation_id = substr($value['field_type'], strpos($value['field_type'], ':') + 1);
             if (is_post_type_translated('product_variation')) {
                 $translated_variation_id = apply_filters('translate_object_id', $variation_id, 'product_variation', false, $language);
             } else {
                 global $sitepress;
                 $trid = $sitepress->get_element_trid($variation_id, 'post_product_variation');
                 $translations = $sitepress->get_element_translations($trid, 'post_product_variation', true, true, true);
                 $translated_variation_id = isset($translations[$language]) ? $translations[$language]->element_id : false;
             }
             if ($translated_variation_id) {
                 update_post_meta($translated_variation_id, '_variation_description', $value['data']);
             }
         }
     }
 }
コード例 #3
0
 /**
  * @param int           $element_id
  * @param string     $element_type
  * @param bool|false $return_original_if_missing
  * @param null       $language_code
  *
  * @return int|null
  */
 function get_object_id($element_id, $element_type = 'post', $return_original_if_missing = false, $language_code = null)
 {
     global $wp_post_types, $wp_taxonomies;
     $ret_element_id = null;
     if ($element_id) {
         $language_code = $language_code ? $language_code : $this->get_current_language();
         if ($element_type == 'any') {
             $post_type = get_post_type($element_id);
             if ($post_type) {
                 $element_type = $post_type;
             } else {
                 $element_type = null;
             }
         }
         if ($element_type) {
             if (isset($wp_taxonomies[$element_type])) {
                 /** @var WPML_Term_Translation $wpml_term_translations */
                 global $wpml_term_translations;
                 $ret_element_id = is_taxonomy_translated($element_type) ? $wpml_term_translations->term_id_in($element_id, $language_code) : $element_id;
             } elseif (isset($wp_post_types[$element_type])) {
                 /** @var WPML_Post_Translation $wpml_post_translations */
                 global $wpml_post_translations;
                 $ret_element_id = is_post_type_translated($element_type) ? $wpml_post_translations->element_id_in($element_id, $language_code) : $element_id;
             } else {
                 $ret_element_id = null;
             }
             $ret_element_id = $ret_element_id ? (int) $ret_element_id : ($return_original_if_missing && !$ret_element_id ? $element_id : null);
         }
     }
     return $ret_element_id;
 }