Exemplo n.º 1
0
 public static function getID($content_id, $content_type = 'post_page')
 {
     $language_code = wpml_get_default_language();
     $lang = wpml_get_content_translation($content_type, $content_id, $language_code);
     if (is_array($lang)) {
         $id = $lang[$language_code];
     } else {
         $id = $content_id;
     }
     return $id;
 }
Exemplo n.º 2
0
 public static function getID($content_id, $content_type = 'post_page')
 {
     // WPML works with the taxonomy id, DW works with term_id
     if ($content_type == 'tax_category') {
         $content_id = self::getTaxID($content_id);
     }
     $language_code = wpml_get_default_language();
     $lang = wpml_get_content_translation($content_type, $content_id, $language_code);
     if (is_array($lang)) {
         $id = $lang[$language_code];
     } else {
         $id = $content_id;
     }
     if ($content_type == 'tax_category') {
         $id = self::getTermID($id);
     }
     return $id;
 }
 /**
  * Restrict vendors from editing other vendors' posts
  *
  * @author      Andrea Grillo <*****@*****.**>
  * @return      void
  * @since       1.0
  * @use         current_screen filter
  */
 public function disabled_manage_other_vendors_posts()
 {
     if (isset($_POST['post_ID']) || !isset($_GET['post'])) {
         return;
     }
     $vendor = yith_get_vendor('current', 'user');
     /* WPML Support */
     $default_language = function_exists('wpml_get_default_language') ? wpml_get_default_language() : null;
     $post_id = yit_wpml_object_id($_GET['post'], 'product', true, $default_language);
     $product_vendor = yith_get_vendor($post_id, 'product');
     // If false, the product hasn't any vendor set
     $post = get_post($_GET['post']);
     if ($vendor->has_limited_access() && false !== $product_vendor && $vendor->id != $product_vendor->id) {
         wp_die(sprintf(__('You do not have permission to edit this product. %1$sClick here to view and edit your products%2$s.', 'yith_wc_product_vendors'), '<a href="' . esc_url('edit.php?post_type=product') . '">', '</a>'));
     }
 }
 /**
  * Restrict vendors from editing other vendors' posts
  *
  * @author      Andrea Grillo <*****@*****.**>
  * @return      void
  * @since       1.3
  * @use         current_screen filter
  */
 public function disabled_manage_other_vendors_posts()
 {
     global $typenow;
     $vendor = yith_get_vendor('current', 'user');
     $is_seller = $vendor->is_valid() && $vendor->has_limited_access();
     if ($is_seller && !empty($typenow) && 'post' == $typenow) {
         wp_die(sprintf(__('You do not have permission to edit this post. %1$sClick here to view your dashboard%2$s.', 'yith_wc_product_vendors'), '<a href="' . esc_url(admin_url()) . '">', '</a>'));
     }
     if (isset($_POST['post_ID']) || !isset($_GET['post'])) {
         return;
     }
     /* WPML Support */
     $default_language = function_exists('wpml_get_default_language') ? wpml_get_default_language() : null;
     $post_id = yit_wpml_object_id($_GET['post'], 'product', true, $default_language);
     $product_vendor = yith_get_vendor($post_id, 'product');
     // If false, the product hasn't any vendor set
     $post = get_post($_GET['post']);
     if ($is_seller) {
         if ('product' == $post->post_type && false !== $product_vendor && $vendor->id != $product_vendor->id) {
             wp_die(sprintf(__('You do not have permission to edit this product. %1$sClick here to view and edit your products%2$s.', 'yith_wc_product_vendors'), '<a href="' . esc_url('edit.php?post_type=product') . '">', '</a>'));
         } else {
             if ('shop_coupon' == $post->post_type && !in_array($post->post_author, $vendor->admins)) {
                 wp_die(sprintf(__('You do not have permission to edit this coupon. %1$sClick here to view and edit your coupons%2$s.', 'yith_wc_product_vendors'), '<a href="' . esc_url('edit.php?post_type=shop_coupon') . '">', '</a>'));
             }
         }
     }
 }
Exemplo n.º 5
0
/**
 * If WPML is used: Try to create automatically a Newsletter subscription page 
 * for each language, when language list is changed
 */
function alo_em_create_wpml_subscrpage_translations($settings)
{
    if (!function_exists('wpml_get_active_languages')) {
        return;
    }
    // if runs before WPML is completely loaded
    $langs = wpml_get_active_languages();
    if (is_array($langs)) {
        foreach ($langs as $lang) {
            // Original page ID
            $original_page_id = get_option('alo_em_subsc_page');
            // If the translated page doesn't exist, now create it
            if (icl_object_id($original_page_id, 'page', false, $lang['code']) == null) {
                // Found at: http://wordpress.stackexchange.com/questions/20143/plugin-wpml-how-to-create-a-translation-of-a-post-using-the-wpml-api
                $post_translated_title = get_post($original_page_id)->post_title . ' (' . $lang['code'] . ')';
                // All page stuff
                $my_page = array();
                $my_page['post_title'] = $post_translated_title;
                $my_page['post_content'] = '[ALO-EASYMAIL-PAGE]';
                $my_page['post_status'] = 'publish';
                $my_page['post_author'] = 1;
                $my_page['comment_status'] = 'closed';
                $my_page['post_type'] = 'page';
                // Insert translated post
                $post_translated_id = wp_insert_post($my_page);
                // Get trid of original post
                $trid = wpml_get_content_trid('post_' . 'page', $original_page_id);
                // Get default language
                $default_lang = wpml_get_default_language();
                // Associate original post and translated post
                global $wpdb;
                $wpdb->update($wpdb->prefix . 'icl_translations', array('trid' => $trid, 'language_code' => $lang['code'], 'source_language_code' => $default_lang), array('element_id' => $post_translated_id));
            }
        }
    }
}
Exemplo n.º 6
0
/**
 * Get the default language
 * @since 3.2
 *
 * @param mixed $empty_value
 *
 * @see   \wpml_get_active_languages_filter
 * @use \SitePress::api_hooks
 * @return string
 */
function wpml_get_default_language_filter($empty_value)
{
    return wpml_get_default_language();
}
/**
 * dynwid_init_worker.php
 *
 * @version $Id: dynwid_init_worker.php 348295 2011-02-20 20:13:21Z qurl $
 * @copyright 2011 Jacco Drabbe
 */
$DW->message('Dynamic Widgets INIT');
echo "\n" . '<!-- Dynamic Widgets v' . DW_VERSION . ' //-->' . "\n";
// UserAgent detection
$DW->message('UserAgent: ' . $DW->useragent);
// WPML Plugin Support
if (defined('ICL_PLUGIN_PATH')) {
    $wpml_api = ICL_PLUGIN_PATH . DW_WPML_API;
    if (file_exists($wpml_api)) {
        require_once $wpml_api;
        $wpmlang = wpml_get_default_language();
        $curlang = wpml_get_current_language();
        $wpml = TRUE;
        $DW->message('WPML language: ' . $curlang);
        if ($wpmlang != $curlang) {
            $DW->wpml = TRUE;
            $DW->message('WPML enabled');
            require_once DW_PLUGIN . 'wpml.php';
        }
    }
}
$DW->message('User has role(s): ' . implode(', ', $DW->userrole));
$custom_post_type = FALSE;
$DW->whereami = $DW->detectPage();
$DW->message('Page is ' . $DW->whereami);
if ($DW->whereami == 'single') {
Exemplo n.º 8
0
 /**
  * @param int $post_id
  *
  * @return mixed|string
  */
 private function get_src_language_code_for_post($post_id)
 {
     $post = get_post($post_id);
     if (empty($post)) {
         return wpml_get_default_language();
     }
     $parent_id = !empty($post->post_parent) ? $post->post_parent : $post->ID;
     if (!isset($this->src_language_cache[$parent_id])) {
         /** @var \wpdb $wpdb */
         global $wpdb;
         $this->src_language_cache[$parent_id] = $wpdb->get_var("SELECT language_code\n\t\t\t\tFROM {$wpdb->prefix}icl_translations \n\t\t\t\tWHERE element_type = 'post_{$post->post_type}'\n\t\t\t\tAND element_id = {$parent_id}\n\t\t\t\tAND source_language_code IS NULL");
     }
     return $this->src_language_cache[$parent_id];
 }
Exemplo n.º 9
0
 /**
  * Construct
  *
  * @param mixed  $vendor The vendor object
  * @param string $obj    What object is if is numeric (vendor|user|product)
  *
  * @return bool|YITH_Vendor
  */
 public static function retrieve($vendor = false, $obj = 'vendor')
 {
     self::$_usermetaKey = YITH_Vendors()->get_user_meta_key();
     self::$_usermetaOwner = YITH_Vendors()->get_user_meta_owner();
     self::$taxonomy = YITH_Vendors()->get_taxonomy_name();
     // change value 'current' to false for $vendor, to make it more rock!
     if ('current' == $vendor) {
         $vendor = false;
     }
     // Get by user
     if ('user' == $obj) {
         // get vendor of actual user if nothind passed
         if (false === $vendor) {
             $vendor = get_user_meta(get_current_user_id(), self::$_usermetaKey, true);
         } else {
             $vendor = get_user_meta($vendor, self::$_usermetaKey, true);
         }
         $obj = 'vendor';
     } elseif ('product' == $obj) {
         // get vendor of actual product if nothind passed
         if (false === $vendor) {
             global $post;
             $vendor = $post->ID;
         } elseif ($vendor instanceof WP_Post) {
             $vendor = $vendor->ID;
         } elseif ($vendor instanceof WC_Product) {
             $vendor = $vendor->id;
         }
         $terms = wp_get_post_terms($vendor, self::$taxonomy);
         if (empty($terms)) {
             return self::_instance();
         }
         /* WPML SUPPORT */
         $vendor_term = array_shift($terms);
         $default_language = function_exists('wpml_get_default_language') ? wpml_get_default_language() : null;
         $vendor_id = yit_wpml_object_id($vendor_term->term_id, YITH_Vendors()->get_taxonomy_name(), true, $default_language);
         return self::_instance($vendor_id, $vendor_term);
     }
     // exit if any object is retrieved
     if (empty($vendor)) {
         return self::_instance();
     }
     // RETRIEVE OBJECT
     // Get vendor by Vendor ID
     if (is_numeric($vendor) && 'vendor' == $obj) {
         $vendor_id = absint($vendor);
         $vendor_term = get_term_by('term_id', $vendor_id, self::$taxonomy);
     } elseif (is_string($vendor)) {
         $vendor_term = get_term_by('slug', $vendor, self::$taxonomy);
         if (empty($vendor_term) || is_wp_error($vendor_term)) {
             $vendor_term = get_term_by('name', $vendor, self::$taxonomy);
         }
         if (empty($vendor_term) || is_wp_error($vendor_term)) {
             return self::_instance();
         }
         $vendor_id = $vendor_term->term_id;
     } elseif ($vendor instanceof YITH_Vendor) {
         $vendor_id = absint($vendor->id);
         $vendor_term = $vendor->term;
         return self::_instance($vendor_id, $vendor_term);
     } elseif (isset($vendor->slug) && term_exists($vendor->slug, self::$taxonomy)) {
         $vendor_id = absint($vendor->term_id);
         $vendor_term = $vendor;
     } else {
         return self::_instance();
     }
     // return false is there is a term associated
     if (empty($vendor_term)) {
         return self::_instance();
     }
     return self::_instance($vendor_id, $vendor_term);
 }
 /**
  * Print vendor store header in archive-product template
  *
  * @since    1.0
  * @return void
  * @author   Andrea Grillo <*****@*****.**>
  * @use woocommerce_show_page_title filter
  */
 public function add_store_page_header()
 {
     if ($this->is_vendor_page()) {
         global $sitepress;
         $has_wpml = !empty($sitepress);
         $term = $default_term = null;
         $term_slug = get_query_var('term');
         if ($has_wpml) {
             $term = get_term_by('slug', $term_slug, YITH_Vendors()->get_taxonomy_name());
             $term_slug = yit_wpml_object_id($term->term_id, YITH_Vendors()->get_taxonomy_name(), true, wpml_get_default_language());
             $default_term = get_term($term_slug, YITH_Vendors()->get_taxonomy_name());
         }
         $vendor = yith_get_vendor($term_slug, 'vendor');
         if ('no' == $vendor->enable_selling) {
             return false;
         }
         $header_img_class = apply_filters('yith_wcmv_header_img_class', array('class' => 'store-image'));
         $args = array('vendor' => $vendor, 'name' => $has_wpml ? $default_term->name : $vendor->name, 'header_skin' => get_option('yith_vendors_skin_header'), 'show_total_sales' => 'yes' == get_option('yith_wpv_vendor_total_sales') ? true : false, 'icons' => apply_filters('yith_wcmv_header_icons_class', array('rating' => 'fa fa-star-half-o', 'sales' => 'fa fa-credit-card', 'vat' => 'fa fa-file-text-o')), 'owner' => get_user_by('id', $vendor->owner), 'header_img_class' => $header_img_class, 'header_image' => wp_get_attachment_image($vendor->header_image, 'big', false, $header_img_class), 'owner_avatar' => get_avatar($vendor->owner, get_option('yith_vendors_gravatar_image_size', '62')), 'vendor_reviews' => $vendor->get_reviews_average_and_product(), 'total_sales' => count($vendor->get_orders()), 'store_header_class' => apply_filters('yith_wcmv_store_header_class', 'store-header-wrapper'), 'show_vendor_vat' => 'yes' === get_option('yith_wpv_vendor_show_vendor_vat', 'yes') ? true : false, 'show_gravatar' => 'enabled' == get_option('yith_vendors_show_gravatar_image', 'enabled') && 'yes' == $vendor->show_gravatar);
         yith_wcpv_get_template('store-header', $args, 'woocommerce/loop');
         /* Vacation Module */
         if ($vendor->is_on_vacation()) {
             yith_wcpv_get_template('store-vacation', array('vacation_message' => $vendor->vacation_message), 'woocommerce/loop');
         }
         /* Vendor Description */
         $vendor_description = $has_wpml ? $default_term->description : $vendor->description;
         if ('yes' == get_option('yith_wpv_vendor_store_description', 'no') && !empty($vendor_description)) {
             $args = array('store_description_class' => apply_filters('yith_wcmv_store_descritpion_class', 'store-description-wrapper'), 'vendor_description' => $vendor_description);
             yith_wcpv_get_template('store-description', $args, 'woocommerce/loop');
         }
     }
 }
Exemplo n.º 11
0
 public function getMainLang()
 {
     global $sitepress;
     if (!$this->main_lang) {
         $main_lang = 'de';
         if ($this->hasWPML()) {
             if (function_exists("wpml_get_default_language")) {
                 $main_lang = wpml_get_default_language();
                 $this->WPML = true;
             }
         } else {
             if (get_bloginfo('language')) {
                 $main_lang = substr(get_bloginfo('language'), 0, 2);
             }
         }
         $this->main_lang = $main_lang;
     }
     return $this->main_lang;
 }
Exemplo n.º 12
0
 /**
  * Get the default language
  *
  * @return string
  */
 public function getDefaultLanguage()
 {
     return wpml_get_default_language();
 }