コード例 #1
0
 function test_add_default_slug_translations()
 {
     $category_base = !empty($this->wc_permalinks['category_base']) ? $this->wc_permalinks['category_base'] : $this->url_translation->default_product_category_base;
     $name = $this->url_translation->url_string_name('product_cat');
     $this->url_translation->add_default_slug_translations($category_base, $name);
     $string_id = icl_get_string_id($category_base, $this->url_translation->url_strings_context(), $name);
     $translations = icl_get_string_translations_by_id($string_id);
     $this->assertEquals('categorie-produit', $translations['fr']['value']);
 }
コード例 #2
0
 function add_endpoints()
 {
     if (!isset($this->endpoints_strings)) {
         return;
     }
     global $wpdb;
     //add endpoints and flush rules
     foreach ($this->endpoints_strings as $string_id) {
         $string_translations = icl_get_string_translations_by_id($string_id);
         foreach ($string_translations as $string) {
             add_rewrite_endpoint($string['value'], EP_ROOT | EP_PAGES);
         }
     }
 }
コード例 #3
0
ファイル: orders.class.php プロジェクト: heaptrace/onlineshop
 function get_filtered_comments($comments)
 {
     $user_id = get_current_user_id();
     if ($user_id) {
         global $wpdb, $woocommerce_wpml;
         $user_language = get_user_meta($user_id, 'icl_admin_language', true);
         foreach ($comments as $key => $comment) {
             $comment_string_id = icl_get_string_id($comment->comment_content, 'woocommerce');
             if ($comment_string_id) {
                 $comment_strings = icl_get_string_translations_by_id($comment_string_id);
                 if ($comment_strings) {
                     $comments[$key]->comment_content = $comment_strings[$user_language]['value'];
                 }
             }
         }
     }
     return $comments;
 }
コード例 #4
0
ファイル: functions.php プロジェクト: edgarter/wecare
/**
 * Returns indexed array with language code and value of string
 *
 * @param int         $string_id     ID of string in icl_strings DB table
 * @param bool|string $language_code false, or language code
 *
 * @return string
 */
function icl_get_string_by_id($string_id, $language_code = false)
{
    global $wpdb, $sitepress_settings;
    if (!$language_code) {
        $language_code = $sitepress_settings['st']['strings_language'];
    }
    if ($language_code == $sitepress_settings['st']['strings_language']) {
        $result_prepared = $wpdb->prepare("SELECT language, value FROM {$wpdb->prefix}icl_strings WHERE id=%d", $string_id);
        $result = $wpdb->get_row($result_prepared);
        if ($result) {
            return $result->value;
        }
    } else {
        $translations = icl_get_string_translations_by_id($string_id);
        if (isset($translations[$language_code])) {
            return $translations[$language_code]['value'];
        }
    }
    return false;
}
コード例 #5
0
 function get_translated_strings($strings)
 {
     $package_id = $this->get_package_id();
     if ($package_id) {
         $results = $this->get_package_strings();
         foreach ($results as $result) {
             $translations = icl_get_string_translations_by_id($result->id);
             if (!empty($translations)) {
                 $string_name = $this->get_package_string_name_from_st_name($result);
                 $strings[$string_name] = $translations;
             }
         }
     }
     return $strings;
 }
コード例 #6
0
 static function get_translations($slug)
 {
     global $sitepress, $sitepress_settings, $wpdb;
     $default_language = $sitepress->get_default_language();
     if ($default_language != $sitepress_settings['st']['strings_language']) {
         $string_id_prepared = $wpdb->prepare("SELECT s.id FROM {$wpdb->prefix}icl_strings s\r\n\t\t\t\t\t\t\t\t\t\t\t\t   JOIN {$wpdb->prefix}icl_string_translations st\r\n\t\t\t\t\t\t\t\t\t\t\t\t   ON st.string_id = s.id\r\n\t\t\t\t\t\t\t\t\t\t\t\t   WHERE st.language=%s AND name = %s ", $default_language, 'URL slug: ' . $slug);
     } else {
         $string_id_prepared = self::get_sql_to_get_string_id($slug);
     }
     $string_id = $wpdb->get_var($string_id_prepared);
     $slug_translations = icl_get_string_translations_by_id($string_id);
     return array($string_id, $slug_translations);
 }
コード例 #7
0
 function admin_email($order_id)
 {
     global $woocommerce, $sitepress;
     if (class_exists('WC_Email_New_Order')) {
         $recipients = explode(',', $woocommerce->mailer()->emails['WC_Email_New_Order']->get_recipient());
         foreach ($recipients as $recipient) {
             $user = get_user_by('email', $recipient);
             if ($user) {
                 $user_lang = $sitepress->get_user_admin_language($user->ID);
             } else {
                 $user_lang = get_post_meta($order_id, 'wpml_language', TRUE);
             }
             icl_get_string_translations_by_id(1);
             $this->change_email_language($user_lang);
             $woocommerce->mailer()->emails['WC_Email_New_Order']->heading = $this->wcml_get_translated_email_string('admin_texts_woocommerce_new_order_settings', '[woocommerce_new_order_settings]heading');
             $woocommerce->mailer()->emails['WC_Email_New_Order']->subject = $this->wcml_get_translated_email_string('admin_texts_woocommerce_new_order_settings', '[woocommerce_new_order_settings]subject');
             $woocommerce->mailer()->emails['WC_Email_New_Order']->recipient = $recipient;
             $woocommerce->mailer()->emails['WC_Email_New_Order']->trigger($order_id);
         }
         $woocommerce->mailer()->emails['WC_Email_New_Order']->enabled = false;
         $this->refresh_email_lang($order_id);
     }
 }
コード例 #8
0
 function translate_attribute_taxonomies_labels($attribute_taxonomies)
 {
     global $sitepress;
     if (is_admin() && !wpml_is_ajax()) {
         foreach ($attribute_taxonomies as $key => $attribute_taxonomy) {
             $string_language = $this->get_string_language($attribute_taxonomy->attribute_name, 'WordPress', 'taxonomy singular name: ' . $attribute_taxonomy->attribute_name);
             if ($sitepress->get_current_language() == $string_language) {
                 continue;
             }
             $string_id = icl_get_string_id($attribute_taxonomy->attribute_name, 'WordPress', 'taxonomy singular name: ' . $attribute_taxonomy->attribute_name);
             $strings = icl_get_string_translations_by_id($string_id);
             if ($strings && isset($strings[$sitepress->get_current_language()])) {
                 $attribute_taxonomies[$key]->attribute_label = $strings[$sitepress->get_current_language()]['value'];
             }
         }
     }
     return $attribute_taxonomies;
 }
コード例 #9
0
            $_has_slug = isset($custom_post->rewrite['slug']) && $custom_post->rewrite['slug'];
            $_on = $sitepress_settings['posts_slug_translation']['on'] && $_has_slug && isset($sitepress_settings['custom_posts_sync_option'][$k]) && $sitepress_settings['custom_posts_sync_option'][$k] == 1;
            $is_hidden = $_on ? '' : 'hidden';
            $_translate = !empty($sitepress_settings['posts_slug_translation']['types'][$k]);
            if ($_has_slug) {
                if ($default_language != $sitepress_settings['st']['strings_language']) {
                    $string_id_prepared = $wpdb->prepare("\r\n                                                        SELECT s.id FROM {$wpdb->prefix}icl_strings s\r\n                                                            JOIN {$wpdb->prefix}icl_string_translations st\r\n                                                            ON st.string_id = s.id\r\n                                                            WHERE st.language=%s AND s.value=%s AND s.name LIKE %s\r\n                                                    ", array($default_language, $custom_post->rewrite['slug'], 'URL slug: %'));
                } else {
                    $string_id_prepared = $wpdb->prepare("SELECT id FROM {$wpdb->prefix}icl_strings WHERE name = %s AND value = %s ", array('Url slug: ' . $custom_post->rewrite['slug'], $custom_post->rewrite['slug']));
                }
                $string_id = $wpdb->get_var($string_id_prepared);
                if ($_translate && !$string_id) {
                    $message = sprintf(__("%s slugs are set to be translated, but they are missing their translation", 'sitepress'), $custom_post->labels->name);
                    ICL_AdminNotifier::displayInstantMessage($message, 'error', 'below-h2', false);
                }
                $_slug_translations = icl_get_string_translations_by_id($string_id);
            } else {
                $_slug_translations = false;
            }
            ?>
                                        <?php 
            if ($_has_slug && isset($sitepress_settings['posts_slug_translation']['on']) && $sitepress_settings['posts_slug_translation']['on']) {
                ?>
                                            <div class="icl_slug_translation_choice <?php 
                echo $is_hidden;
                ?>
">
                                                <p>
                                                    <label>
                                                        <input name="translate_slugs[<?php 
                echo $k;
コード例 #10
0
 static function get_translations($slug)
 {
     global $wpdb;
     $string_id_prepared = self::get_sql_to_get_string_id($slug);
     $string_id = $wpdb->get_var($string_id_prepared);
     $slug_translations = icl_get_string_translations_by_id($string_id);
     return array($string_id, $slug_translations);
 }
 function get_translated_strings($strings, $context)
 {
     $package_id = $this->_get_package_id($context);
     if ($package_id) {
         global $wpdb;
         // Get strings already in the database
         $results_query = "SELECT id, name, value FROM {$wpdb->prefix}icl_strings WHERE string_package_id=%d";
         $results_prepare = $wpdb->prepare($results_query, $package_id);
         $results = $wpdb->get_results($results_prepare);
         foreach ($results as $result) {
             $translations = icl_get_string_translations_by_id($result->id);
             if (!empty($translations)) {
                 $string_name = substr($result->name, strlen($package_id) + 1);
                 $strings[$string_name] = $translations;
             }
         }
     }
     return $strings;
 }