/** * Filter posts active only in enabled languages. * * @param $where * * @return string */ public function filter_posts_where($where) { global $pagenow, $wpdb; if ('edit.php' === $pagenow && !is_null(FW_Request::get('fw_all_languages')) && $this->is_public_post_type()) { $where .= " AND {$wpdb->postmeta}.meta_value IN ( '" . implode("','", array_keys($this->get_parent()->get_enabled_languages())) . "' )"; } return $where; }
/** * Filter terms in frontend and backend by active language. * * @param $query * * @return mixed */ public function change_admin_terms_query($query) { global $pagenow; global $wpdb; //filter backend if ($this->is_public_tax_type()) { if ('edit-tags.php' === $pagenow and is_null(FW_Request::get('fw_all_languages'))) { $active_lang = FW_Request::GET('fw_translate_to', $this->get_parent()->get_admin_active_language()); $query['join'] .= " INNER JOIN {$wpdb->fw_termmeta} AS fw_tm\n\t\t\t\t\t\t\t\tON t.term_id = fw_tm.fw_term_id AND\n\t\t\t\t\t\t\t\tfw_tm.meta_key = 'translation_lang' AND\n\t\t\t\t\t\t\t\tfw_tm.meta_value = '" . $active_lang . "'"; } if ('edit-tags.php' === $pagenow and !is_null(FW_Request::get('fw_all_languages'))) { $query['join'] .= " INNER JOIN {$wpdb->fw_termmeta} AS fw_tm\n\t\t\t\t\t\t\t\tON t.term_id = fw_tm.fw_term_id AND\n\t\t\t\t\t\t\t\tfw_tm.meta_key = 'translation_lang'"; $query['where'] .= " AND fw_tm.meta_value IN ( '" . implode("','", array_keys($this->get_parent()->get_enabled_languages())) . "' )"; } } return $query; }