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; }
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>')); } } } }
/** * 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)); } } } }
/** * 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') {
/** * @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]; }
/** * 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'); } } }
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; }
/** * Get the default language * * @return string */ public function getDefaultLanguage() { return wpml_get_default_language(); }