/**
  * Filter a string to check translations for URL.
  * // We build multilingual URLs in customizer using the ':::' delimiter.
  * We build multilingual URLs in customizer using the '|||' delimiter.
  * See wpglobus-customize-control.js
  *
  * @note  To work correctly, value of $url should begin with URL for default language.
  * @see   esc_url() - the 'clean_url' filter
  * @since 1.3.0
  *
  * @param string $url          The cleaned URL.
  * @param string $original_url The URL prior to cleaning.
  *
  * @return string
  */
 public static function filter__clean_url($url, $original_url)
 {
     if (false !== strpos($original_url, '|||')) {
         $arr1 = array();
         $arr = explode('|||', $original_url);
         foreach ($arr as $k => $val) {
             // Note: 'null' is a string, not real `null`.
             if ('null' !== $val) {
                 $arr1[WPGlobus::Config()->enabled_languages[$k]] = $val;
             }
         }
         return WPGlobus_Utils::build_multilingual_string($arr1);
     }
     return $url;
 }
 /**
  * @covers WPGlobus_Utils::build_multilingual_string
  */
 public static function test_build_multilingual_string()
 {
     $translations = array('en' => 'EN', 'ru' => 'RU', 'de' => 'DE', 'fr' => 'FR');
     self::assertEquals('{:en}EN{:}{:ru}RU{:}{:de}DE{:}{:fr}FR{:}', WPGlobus_Utils::build_multilingual_string($translations));
 }
Ejemplo n.º 3
0
 /**
  * Filter @see wp_insert_term().
  * @since 1.6.6
  *
  * @param string $term     The term to add or update.
  * @param string $taxonomy Taxonomy slug.
  *
  * @return string
  */
 public static function filter__pre_insert_term($term, $taxonomy)
 {
     $multilingual_term = esc_sql($term);
     if (WPGlobus::Config()->language != WPGlobus::Config()->default_language) {
         $multilingual_term = WPGlobus_Utils::build_multilingual_string(array(WPGlobus::Config()->language => $term));
     }
     global $wpdb;
     $data = $wpdb->get_results("SELECT * FROM {$wpdb->terms} AS terms WHERE terms.name LIKE '%{$multilingual_term}%'");
     if (count($data) > 0) {
         /**
          * Return empty to prevent creating duplicate term.
          * @see wp_insert_term() in wp-includes\taxonomy.php
          */
         return '';
     }
     return $term;
 }