public static function link_translations($posts) { if (!function_exists('pll_save_post_translations')) { return; } pll_save_post_translations($posts); }
/** * Define the sarch page url for the current language * * @param $default_search_page_id * @param $default_search_page_url * * @return string */ function set_search_page_url($default_search_page_url, $default_search_page_id) { global $polylang; $current_language_code = $this->get_current_language_code(); // Get search page in current language $default_search_page_id_translated = pll_get_post($default_search_page_id, $current_language_code); if (!$default_search_page_id_translated) { // Create a new search page for the translation $default_search_page = WPSolrSearchSolrClient::create_default_search_page(); // Retrieve current search page translations $translations = $polylang->model->get_translations('post', $default_search_page_id); // Add current translation to translations $translations[$current_language_code] = $default_search_page->ID; // Save translations pll_save_post_translations($translations); } $result = $default_search_page_id === $default_search_page_id_translated ? $default_search_page_url : get_permalink($default_search_page_id_translated); return $result; }
/** * Short Description. (use period) * * Long Description. * * @since 1.0.0 */ public static function activate() { global $polylang; $page = get_page_by_title('Enquire Now'); if (!$page) { if (isset($polylang)) { // START ENQUIRE PAGE SETUP $pagetranslations = array(); $languages = $polylang->model->get_languages_list(); foreach ($languages as $language) { $slug = $language->slug; //error_log($slug); switch ($slug) { /*case 'en': $args = array( 'post_title' => 'Enquire Now', 'post_content' => '[enquireform]', 'post_status' => 'publish', 'post_author' => 1, 'post_type' => 'page' ); break;*/ case 'de': $args = array('post_title' => 'Anfrage', 'post_content' => '[enquireform]', 'post_status' => 'publish', 'post_author' => 1, 'post_type' => 'page'); break; case 'fr': $args = array('post_title' => 'Renseignez Vous', 'post_content' => '[enquireform]', 'post_status' => 'publish', 'post_author' => 1, 'post_type' => 'page'); break; case 'es': $args = array('post_title' => 'Solicite Informacion', 'post_content' => '[enquireform]', 'post_status' => 'publish', 'post_author' => 1, 'post_type' => 'page'); break; case 'pt': $args = array('post_title' => 'Consultar', 'post_content' => '[enquireform]', 'post_status' => 'publish', 'post_author' => 1, 'post_type' => 'page'); break; default: $args = array('post_title' => 'Enquire Now', 'post_content' => '[enquireform]', 'post_status' => 'publish', 'post_author' => 1, 'post_type' => 'page'); } $page = get_page_by_title($args['post_title']); if (!$page) { $pid = wp_insert_post($args); pll_set_post_language($pid, $slug); if ($pid && !is_wp_error($pid)) { //update_post_meta( $pid, '_wp_page_template', 'page-templates/enquire-template.php' ); } $pagetranslations[$slug] = $pid; } else { $pid = $page->ID; //update_post_meta( $pid, '_wp_page_template', 'page-templates/enquire-template.php' ); $pagetranslations[$slug] = $pid; } } pll_save_post_translations($pagetranslations); // END ENQUIRE PAGE SETUP // START THANK YOU PAGE SETUP $pagetranslations = array(); $languages = $polylang->model->get_languages_list(); foreach ($languages as $language) { $slug = $language->slug; //error_log($slug); switch ($slug) { /*case 'en': $targs = array( 'post_title' => 'Thank You', 'post_content' => 'thank you html markup here... best practice is to use a shortcode.', 'post_status' => 'publish', 'post_author' => 1, 'post_type' => 'page' ); break;*/ case 'de': $targs = array('post_title' => 'Vielen Dank', 'post_content' => 'thank you html markup here... best practice is to use a shortcode.', 'post_status' => 'publish', 'post_author' => 1, 'post_type' => 'page'); break; case 'fr': $targs = array('post_title' => 'Merci', 'post_content' => 'thank you html markup here... best practice is to use a shortcode.', 'post_status' => 'publish', 'post_author' => 1, 'post_type' => 'page'); break; case 'es': $targs = array('post_title' => 'Gracias', 'post_content' => 'thank you html markup here... best practice is to use a shortcode.', 'post_status' => 'publish', 'post_author' => 1, 'post_type' => 'page'); break; case 'pt': $targs = array('post_title' => 'Obrigado', 'post_content' => 'thank you html markup here... best practice is to use a shortcode.', 'post_status' => 'publish', 'post_author' => 1, 'post_type' => 'page'); break; default: $targs = array('post_title' => 'Thank You', 'post_content' => 'thank you html markup here... best practice is to use a shortcode.', 'post_status' => 'publish', 'post_author' => 1, 'post_type' => 'page'); } $page = get_page_by_title($targs['post_title']); if (!$page) { $pid = wp_insert_post($targs); pll_set_post_language($pid, $slug); if ($pid && !is_wp_error($pid)) { //update_post_meta( $pid, '_wp_page_template', 'page-templates/thankyou-template.php' ); } $pagetranslations[$slug] = $pid; } else { $pid = $page->ID; //update_post_meta( $pid, '_wp_page_template', 'page-templates/thankyou-template.php' ); $pagetranslations[$slug] = $pid; } } pll_save_post_translations($pagetranslations); // END THANK YOU PAGE SETUP } else { // Create post object $args = array('post_title' => 'Enquire Now', 'post_content' => '[enquireform]', 'post_status' => 'publish', 'post_author' => 1, 'post_type' => 'page'); $pid = wp_insert_post($args); if ($pid && !is_wp_error($pid)) { //update_post_meta( $pid, '_wp_page_template', 'page-templates/enquire-template.php' ); } // Create post object $args = array('post_title' => 'Thank You', 'post_content' => 'thank you html markup here... best practice is to use a shortcode.', 'post_status' => 'publish', 'post_author' => 1, 'post_type' => 'page'); $pid = wp_insert_post($args); if ($pid && !is_wp_error($pid)) { //update_post_meta( $pid, '_wp_page_template', 'page-templates/thankyou-template.php' ); } } } }
$postid = wp_insert_post($newpost); $url = 'https://cfp.openfest.org/uploads/speaker_profile/picture/' . $row->id . '/schedule_' . $row->picture; echo $url . "\n"; $att = media_sideload_image($url, $postid, "photo_spk_bg_" . $row->user_id); preg_match("%src='(http://[^']*)'%", $att, $matches); $wpurl = $matches[1]; $attid = pn_get_attachment_id_from_url($wpurl); add_post_meta($postid, '_thumbnail_id', $attid); pll_set_post_language($postid, 'bg'); $postid_en = wp_insert_post($newpost); $url = 'https://cfp.openfest.org/uploads/speaker_profile/picture/' . $row->id . '/schedule_' . $row->picture; echo $url . "\n"; $att = media_sideload_image($url, $postid_en, "photo_spk_en_" . $row->user_id); preg_match("%src='(http://[^']*)'%", $att, $matches); $wpurl = $matches[1]; $attid = pn_get_attachment_id_from_url($wpurl); add_post_meta($postid_en, '_thumbnail_id', $attid); pll_set_post_language($postid_en, 'en'); foreach (array($postid, $postid_en) as $v) { if (strlen($row->github) > 1) { add_post_meta($v, 'github', $row->github); } if (strlen($row->twitter) > 1) { add_post_meta($v, 'twitter', $row->twitter); } if (strlen($row->public_email) > 1) { add_post_meta($v, 'public_email', $row->public_email); } } pll_save_post_translations(array($postid => 'bg', $postid_en => '$en')); }
public function saveImage($translationId, $languageSlug, $image) { // Check if the translations already exists if ($translation = Pll()->model->post->get_translation($image['id'], $languageSlug)) { return update_post_meta($translationId, $image['key'], $translation); } $translationImagePost = $image['post']; // Create a new attachment $translationImagePost->ID = null; $translationImagePost->post_parent = $translationId; $translationImageId = wp_insert_attachment($translationImagePost); add_post_meta($translationImageId, '_wp_attachment_metadata', get_post_meta($image['id'], '_wp_attachment_metadata', true)); add_post_meta($translationImageId, '_wp_attached_file', get_post_meta($image['id'], '_wp_attached_file', true)); add_post_meta($translationImageId, '_wp_attachment_image_alt', get_post_meta($image['id'], '_wp_attachment_image_alt', true)); $mediaTranslations = Pll()->model->post->get_translations($image['id']); if (!$mediaTranslations && ($lang = Pll()->model->post->get_language($image['id']))) { $mediaTranslations[$lang->slug] = $image['id']; } $mediaTranslations[$languageSlug] = $translationImageId; pll_save_post_translations($mediaTranslations); update_post_meta($translationId, $image['key'], $translationImageId); do_action('bp_trapp_after_save_post_image', $translationImageId, $image); }