PluginProbe
AI Builder – Generate pages, blocks, images & translate with AI / 2.7.10
AI Builder – Generate pages, blocks, images & translate with AI v2.7.10
2.8.0 2.7.10 2.7.9 2.7.8 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 All 123 releases
← All changes | includes/class-translation-handler.php +29 -2 2.1.82.7.10 View file →
@@ -641,9 +641,9 @@
641 641 // Call translation API
642 642 $api_url = 'https://api.wordpress-ai-builder.com/api' . '/ai-transform-page/translate-post';
643 643
644 644 $response = wp_remote_post($api_url, array(
645 - 'timeout' => 60,
645 + 'timeout' => 180, // 5 minutes - AI translation can take longer for large pages
646 646 'headers' => array(
647 647 'Authorization' => 'Bearer ' . $jwt_token,
648 648 'Content-Type' => 'application/json',
649 649 ),
@@ -722,12 +722,14 @@
722 722 if (is_wp_error($new_post_id)) {
723 723 wp_send_json_error(array('message' => 'Failed to create translated post: ' . $new_post_id->get_error_message()));
724 724 }
725 725
726 - // Save meta description (both keys)
726 + // Save meta description across all supported meta keys
727 727 if (!empty($translated_data['meta_desc'])) {
728 728 update_post_meta($new_post_id, '_ai_builder_seo_desc', $translated_data['meta_desc']);
729 729 update_post_meta($new_post_id, '_yoast_wpseo_metadesc', $translated_data['meta_desc']);
730 + update_post_meta($new_post_id, 'aibui_meta_description', $translated_data['meta_desc']);
731 + update_post_meta($new_post_id, '_ai_translation_meta_desc', $translated_data['meta_desc']);
730 732 }
731 733
732 734 // Copy custom CSS meta if present
733 735 $css_meta_keys = array(
@@ -742,8 +744,22 @@
742 744 update_post_meta($new_post_id, $css_key, $css_value);
743 745 }
744 746 }
745 747
748 + // Copy custom JS meta if present (so translated pages keep JS behavior)
749 + $js_meta_keys = array(
750 + 'ai_builder_page_js_content',
751 + 'ai_builder_block_js_content',
752 + 'ai_builder_js_content'
753 + );
754 +
755 + foreach ($js_meta_keys as $js_key) {
756 + $js_value = get_post_meta($post_id, $js_key, true);
757 + if (!empty($js_value)) {
758 + update_post_meta($new_post_id, $js_key, $js_value);
759 + }
760 + }
761 +
746 762 // Save language meta
747 763 update_post_meta($new_post_id, '_ai_lang', $target_lang);
748 764 update_post_meta($new_post_id, '_ai_translation_source', $post_id);
749 765 if (!get_post_meta($post_id, '_ai_translation_source', true)) {
@@ -782,8 +798,19 @@
782 798
783 799 // Preserve AI-created flag to keep hide-title CSS behavior
784 800 if (get_post_meta($post_id, '_aibui_created_by_ai', true) === '1') {
785 801 update_post_meta($new_post_id, '_aibui_created_by_ai', '1');
802 + }
803 +
804 + // If the original page is the front page, mark the translation as homepage for its language
805 + $front_page_id = get_option('page_on_front');
806 + if ($front_page_id && (int) $front_page_id === (int) $post_id) {
807 + update_post_meta($new_post_id, '_ai_is_homepage', '1');
808 + }
809 +
810 + // Also copy the homepage flag if it exists on the original
811 + if (get_post_meta($post_id, '_ai_is_homepage', true) === '1') {
812 + update_post_meta($new_post_id, '_ai_is_homepage', '1');
786 813 }
787 814
788 815 // Copy featured image if exists
789 816 $thumbnail_id = get_post_thumbnail_id($post_id);