Changeset 3428884
- Timestamp:
- 12/29/2025 07:59:11 AM (3 months ago)
- Location:
- aicontify
- Files:
-
- 29 added
- 15 edited
-
tags/7.0.0 (added)
-
tags/7.0.0/aicontify.php (added)
-
tags/7.0.0/contentPosts.php (added)
-
tags/7.0.0/css (added)
-
tags/7.0.0/css/style.css (added)
-
tags/7.0.0/dashboard.php (added)
-
tags/7.0.0/editContentPosts.php (added)
-
tags/7.0.0/faqPosts.php (added)
-
tags/7.0.0/img (added)
-
tags/7.0.0/img/logo-aicontify.png (added)
-
tags/7.0.0/js (added)
-
tags/7.0.0/js/tabsPosts.js (added)
-
tags/7.0.0/languages (added)
-
tags/7.0.0/languages/aicontify-fa_IR.mo (added)
-
tags/7.0.0/languages/aicontify-fa_IR.po (added)
-
tags/7.0.0/languages/aicontify.pot (added)
-
tags/7.0.0/readme.txt (added)
-
tags/7.0.0/seoDescription.php (added)
-
tags/7.0.0/seoTitle.php (added)
-
tags/7.0.0/settings (added)
-
tags/7.0.0/settings.php (added)
-
tags/7.0.0/settings/tab-content.php (added)
-
tags/7.0.0/settings/tab-faq.php (added)
-
tags/7.0.0/settings/tab-main.php (added)
-
tags/7.0.0/settings/tab-seo-meta.php (added)
-
tags/7.0.0/settings/tab-seo-title.php (added)
-
tags/7.0.0/tabsPosts.php (added)
-
tags/7.0.0/titleSuggestionPosts.php (added)
-
trunk/aicontify.php (modified) (2 diffs)
-
trunk/css/style.css (modified) (12 diffs)
-
trunk/js/tabsPosts.js (modified) (3 diffs)
-
trunk/languages/aicontify-fa_IR.mo (modified) (previous)
-
trunk/languages/aicontify-fa_IR.po (modified) (8 diffs)
-
trunk/languages/aicontify.pot (modified) (19 diffs)
-
trunk/readme.txt (modified) (1 diff)
-
trunk/seoDescription.php (modified) (4 diffs)
-
trunk/seoTitle.php (modified) (4 diffs)
-
trunk/settings.php (modified) (4 diffs)
-
trunk/settings/tab-content.php (modified) (5 diffs)
-
trunk/settings/tab-faq.php (modified) (4 diffs)
-
trunk/settings/tab-seo-meta.php (modified) (1 diff)
-
trunk/settings/tab-seo-title.php (modified) (4 diffs)
-
trunk/tabsPosts.php (modified) (7 diffs)
-
trunk/titleSuggestionPosts.php (added)
Legend:
- Unmodified
- Added
- Removed
-
aicontify/trunk/aicontify.php
r3412045 r3428884 4 4 Plugin URI: https://aicontify.com/ 5 5 Description: Your Smart Content Assistant – One Click, Full Content 6 Version: 6.0.06 Version: 7.0.0 7 7 Author: Hassan Solgi 8 8 Author URI: https://t.me/hassansolgi … … 14 14 Requires PHP: 7.4 15 15 Tested up to: 6.8 16 */ 16 */ 17 17 18 18 if (!defined('ABSPATH')) { -
aicontify/trunk/css/style.css
r3402261 r3428884 1 1 /* Posts */ 2 2 #aicont_custom_tabs, 3 #aicont_custom_tabs_pages, 3 4 #aicont_custom_tabs_product { 4 5 margin-bottom: 20px; … … 6 7 7 8 #aicont_custom_tabs .nav-tab-wrapper, 9 #aicont_custom_tabs_pages .nav-tab-wrapper, 8 10 #aicont_custom_tabs_product .nav-tab-wrapper { 9 11 border-bottom: 1px solid #c3c4c7; … … 13 15 14 16 #aicont_custom_tabs .nav-tab, 17 #aicont_custom_tabs_pages .nav-tab, 15 18 #aicont_custom_tabs_product .nav-tab { 16 19 margin: 0 5px -1px 0; … … 28 31 29 32 #aicont_custom_tabs .nav-tab:hover, 33 #aicont_custom_tabs_pages .nav-tab:hover, 30 34 #aicont_custom_tabs_product .nav-tab:hover { 31 35 background: #ffffff; … … 34 38 35 39 #aicont_custom_tabs .nav-tab.nav-tab-active, 40 #aicont_custom_tabs_pages .nav-tab.nav-tab-active, 36 41 #aicont_custom_tabs_product .nav-tab.nav-tab-active { 37 42 background: #ffffff; … … 42 47 43 48 #aicont_custom_tabs .tab-content, 49 #aicont_custom_tabs_pages .tab-content, 44 50 #aicont_custom_tabs_product .tab-content { 45 51 padding: 15px; … … 51 57 52 58 #aicont_custom_tabs .tab-content.active, 59 #aicont_custom_tabs_pages .tab-content.active, 53 60 #aicont_custom_tabs_product .tab-content.active { 54 61 display: block !important; … … 57 64 /* BTN*/ 58 65 #aicont_custom_tabs .button-primary, 66 #aicont_custom_tabs_pages .button-primary, 59 67 #aicont_custom_tabs_product .button-primary { 60 68 background: #2271b1 !important; … … 68 76 69 77 #aicont_custom_tabs .button-primary:hover, 78 #aicont_custom_tabs_pages .button-primary:hover, 70 79 #aicont_custom_tabs_product .button-primary:hover { 71 80 background: #135e96 !important; … … 109 118 } 110 119 120 #aicont-title-suggestion-result .success, 121 #aicont-title-suggestion-pages-result .success, 122 #aicont-product-title-suggestion-result .success, 111 123 #aicont-faq-result .success, 124 #aicont-faq-pages-result .success, 112 125 #aicont-contentPosts-result .success, 126 #aicont-contentPages-pages-result .success, 113 127 #aicont-editContent-result .success, 128 #aicont-editContent-pages-result .success, 114 129 #aicont-seo-title-result .success, 130 #aicont-seo-title-pages-result .success, 115 131 #aicont-meta-description-result .success, 132 #aicont-meta-description-pages-result .success, 116 133 #aicont-content-products-result .success, 117 134 #aicont-content-products-edit-result .success, … … 131 148 } 132 149 150 #aicont-title-suggestion-result .error, 151 #aicont-title-suggestion-pages-result .error, 152 #aicont-product-title-suggestion-result .error, 133 153 #aicont-faq-result .error, 154 #aicont-faq-pages-result .error, 134 155 #aicont-contentPosts-result .error, 156 #aicont-contentPages-pages-result .error, 135 157 #aicont-editContent-result .error, 158 #aicont-editContent-pages-result .error, 136 159 #aicont-seo-title-result .error, 160 #aicont-seo-title-pages-result .error, 137 161 #aicont-meta-description-result .error, 162 #aicont-meta-description-pages-result .error, 138 163 #aicont-content-products-result .error, 139 164 #aicont-content-products-edit-result .error, … … 906 931 margin: 16px 0 0; 907 932 } 933 934 /* ============================================================================ 935 AiContify - Title Suggestion Items Styles 936 ============================================================================ */ 937 938 .aicont-title-item { 939 padding: 12px; 940 margin-bottom: 8px; 941 background-color: #f5f5f5; 942 border-left: 4px solid #0073aa; 943 border-radius: 3px; 944 cursor: pointer; 945 transition: background-color 0.2s ease; 946 } 947 948 .aicont-title-item:active { 949 background-color: #d4ebf5; 950 } 951 #aicont-title-suggestion-result { 952 margin-top: 15px; 953 } 954 955 .aicont-title-item { 956 position: relative; 957 padding: 10px 12px; 958 margin-bottom: 8px; 959 background: #f7f7f7; 960 border-radius: 6px; 961 cursor: pointer; 962 transition: background 0.2s ease; 963 } 964 965 .aicont-title-item:hover { 966 background: #ececec; 967 } 968 969 .aicont-copy-msg { 970 position: absolute; 971 top: -28px; 972 right: 10px; 973 background: #28a745; 974 color: #fff; 975 font-size: 12px; 976 padding: 4px 8px; 977 border-radius: 4px; 978 opacity: 0; 979 transform: translateY(5px); 980 pointer-events: none; 981 transition: all 0.3s ease; 982 white-space: nowrap; 983 } 984 985 .aicont-copy-msg.show { 986 opacity: 1; 987 transform: translateY(0); 988 } 989 990 /* ============================================================================ 991 AiContify - Product Title Suggestion Items Styles 992 ============================================================================ */ 993 994 .aicont-product-title-item { 995 padding: 12px; 996 margin-bottom: 8px; 997 background-color: #f5f5f5; 998 border-left: 4px solid #0073aa; 999 border-radius: 3px; 1000 cursor: pointer; 1001 transition: background-color 0.2s ease; 1002 } 1003 1004 .aicont-product-title-item:active { 1005 background-color: #d4ebf5; 1006 } 1007 1008 #aicont-product-title-suggestion-result { 1009 margin-top: 15px; 1010 } 1011 1012 .aicont-product-title-item { 1013 position: relative; 1014 padding: 10px 12px; 1015 margin-bottom: 8px; 1016 background: #f7f7f7; 1017 border-radius: 6px; 1018 cursor: pointer; 1019 transition: background 0.2s ease; 1020 } 1021 1022 .aicont-product-title-item:hover { 1023 background: #ececec; 1024 } 1025 1026 .aicont-product-copy-msg { 1027 position: absolute; 1028 top: -28px; 1029 right: 10px; 1030 background: #28a745; 1031 color: #fff; 1032 font-size: 12px; 1033 padding: 4px 8px; 1034 border-radius: 4px; 1035 opacity: 0; 1036 transform: translateY(5px); 1037 pointer-events: none; 1038 transition: all 0.3s ease; 1039 white-space: nowrap; 1040 } 1041 1042 .aicont-product-copy-msg.show { 1043 opacity: 1; 1044 transform: translateY(0); 1045 } -
aicontify/trunk/js/tabsPosts.js
r3402261 r3428884 9 9 ); 10 10 11 let activeTab = tabInput?.value?.trim() || "main-content"; 12 const validTabs = ["main-content", "faq", "seo-title", "seo-description"]; 11 let activeTab = tabInput?.value?.trim() || "title-suggestion"; 12 const validTabs = [ 13 "title-suggestion", 14 "main-content", 15 "faq", 16 "seo-title", 17 "seo-description", 18 ]; 13 19 if (!validTabs.includes(activeTab)) { 14 activeTab = " main-content";20 activeTab = "title-suggestion"; 15 21 } 16 22 … … 59 65 const keywordInput = document.getElementById("aicont_keyword"); 60 66 const { __ } = wp.i18n; 67 68 /** 69 * AiContify - Title Suggestion Generator 70 */ 71 const generateTitleSuggestionBtn = document.getElementById( 72 "aicont-generate-title-suggestion-btn" 73 ); 74 const titleSuggestionResultBox = document.getElementById( 75 "aicont-title-suggestion-result" 76 ); 77 const titleSuggestionLoadingBox = document.getElementById( 78 "aicont-title-suggestion-loading-box" 79 ); 80 81 if ( 82 !generateTitleSuggestionBtn || 83 !titleSuggestionResultBox || 84 !titleSuggestionLoadingBox || 85 !keywordInput 86 ) { 87 console.warn( 88 "AiContify: Required elements for title suggestions not found." 89 ); 90 return; 91 } 92 93 // Reorder: Move loading box after result box in DOM 94 if (titleSuggestionResultBox.parentNode) { 95 const parent = titleSuggestionResultBox.parentNode; 96 titleSuggestionResultBox.parentNode.insertBefore( 97 titleSuggestionLoadingBox, 98 titleSuggestionResultBox.nextSibling 99 ); 100 } 101 102 function toggleGenerateTitleSuggestionButton() { 103 const hasKeyword = keywordInput.value.trim().length > 0; 104 generateTitleSuggestionBtn.disabled = !hasKeyword; 105 generateTitleSuggestionBtn.style.opacity = hasKeyword ? "1" : "0.5"; 106 generateTitleSuggestionBtn.style.cursor = hasKeyword 107 ? "pointer" 108 : "not-allowed"; 109 } 110 111 keywordInput.addEventListener("input", toggleGenerateTitleSuggestionButton); 112 keywordInput.addEventListener("paste", () => 113 setTimeout(toggleGenerateTitleSuggestionButton, 100) 114 ); 115 toggleGenerateTitleSuggestionButton(); 116 117 function getTitleSuggestionMessage(key) { 118 const messages = { 119 generating: __( 120 "Generating suggested titles, please wait...", 121 "aicontify" 122 ), 123 success_generated: __( 124 "Suggested titles generated successfully!", 125 "aicontify" 126 ), 127 err_keyword_empty: __( 128 "Please enter a keyword before generating titles.", 129 "aicontify" 130 ), 131 err_connection_failed: __( 132 "Connection failed. Please check your internet connection.", 133 "aicontify" 134 ), 135 err_server_error: __("An unexpected server error occurred.", "aicontify"), 136 err_titles_empty: __("Generated titles are empty.", "aicontify"), 137 err_daily_limit_exceeded: __( 138 "Daily AI generation limit reached. Try again tomorrow or upgrade.", 139 "aicontify" 140 ), 141 }; 142 143 return messages[key] || key; 144 } 145 146 generateTitleSuggestionBtn.addEventListener("click", async function (e) { 147 e.preventDefault(); 148 149 const postId = generateTitleSuggestionBtn.getAttribute("data-postid"); 150 const keyword = keywordInput.value.trim(); 151 152 titleSuggestionResultBox.innerHTML = ""; 153 titleSuggestionLoadingBox.style.display = "block"; 154 titleSuggestionResultBox.innerHTML = `<span style='color: #0073aa;'>${getTitleSuggestionMessage( 155 "generating" 156 )}</span>`; 157 158 if (!keyword) { 159 titleSuggestionResultBox.innerHTML = `<span class='error'>${getTitleSuggestionMessage( 160 "err_keyword_empty" 161 )}</span>`; 162 titleSuggestionLoadingBox.style.display = "none"; 163 return; 164 } 165 166 try { 167 const formData = new URLSearchParams(); 168 formData.append("action", "aicont_generate_title_suggestion"); 169 formData.append("nonce", aicontify_ajax.nonce); 170 formData.append("post_id", postId); 171 formData.append("keyword", keyword); 172 173 const response = await fetch(aicontify_ajax.ajax_url, { 174 method: "POST", 175 credentials: "same-origin", 176 headers: { 177 "Content-Type": "application/x-www-form-urlencoded", 178 }, 179 body: formData, 180 }); 181 182 const data = await response.json(); 183 184 if (!response.ok || !data.success) { 185 const code = data.data?.code || "err_server_error"; 186 throw new Error(code); 187 } 188 189 titleSuggestionLoadingBox.style.display = "none"; 190 191 titleSuggestionResultBox.innerHTML = `<span style='color: green;'>${getTitleSuggestionMessage( 192 "success_generated" 193 )}</span>`; 194 195 const titles = data.data.titles || []; 196 197 if (Array.isArray(titles) && titles.length > 0) { 198 let titlesHtml = ` 199 <div class="aicont-titles-list" style="margin-top: 15px;"> 200 <p style="font-weight: bold; margin-bottom: 10px;">Suggested Titles:</p> 201 `; 202 203 titles.forEach((title, index) => { 204 titlesHtml += ` 205 <div class="aicont-title-item"> 206 <span style="color: #333;">${title}</span> 207 </div> 208 `; 209 }); 210 211 titlesHtml += `</div>`; 212 titleSuggestionResultBox.innerHTML += titlesHtml; 213 } 214 } catch (error) { 215 console.error("AiContify Title Suggestion Error:", error); 216 217 const errorCode = error.message; 218 const errorMessages = { 219 err_keyword_empty: "err_keyword_empty", 220 err_connection_failed: "err_connection_failed", 221 err_server_error: "err_server_error", 222 err_titles_empty: "err_titles_empty", 223 err_daily_limit_exceeded: "err_daily_limit_exceeded", 224 }; 225 226 const msgKey = errorMessages[errorCode] || "err_server_error"; 227 titleSuggestionResultBox.innerHTML = `<span class='error'>${getTitleSuggestionMessage( 228 msgKey 229 )}</span>`; 230 titleSuggestionLoadingBox.style.display = "none"; 231 } 232 }); 61 233 62 234 /** … … 765 937 } 766 938 }); 939 940 // copy to clipboard for title suggestions 941 document.addEventListener("DOMContentLoaded", function () { 942 const container = document.getElementById("aicont-title-suggestion-result"); 943 if (!container) return; 944 945 container.addEventListener("click", function (e) { 946 const item = e.target.closest(".aicont-title-item"); 947 if (!item) return; 948 949 const text = item.querySelector("span")?.innerText; 950 if (!text) return; 951 952 navigator.clipboard.writeText(text).then(() => { 953 showCopyMessage(item, "✅ Copy to clipboard"); 954 }); 955 }); 956 957 function showCopyMessage(target, message) { 958 let msg = target.querySelector(".aicont-copy-msg"); 959 960 if (!msg) { 961 msg = document.createElement("div"); 962 msg.className = "aicont-copy-msg"; 963 target.appendChild(msg); 964 } 965 966 msg.innerText = message; 967 msg.classList.add("show"); 968 969 setTimeout(() => { 970 msg.classList.remove("show"); 971 }, 1500); 972 } 973 }); -
aicontify/trunk/languages/aicontify-fa_IR.po
r3402369 r3428884 3 3 "Plural-Forms: nplurals=2; plural=(n==0 || n==1);\n" 4 4 "Project-Id-Version: AiContify\n" 5 "POT-Creation-Date: 2025-1 1-25 13:13+0330\n"6 "PO-Revision-Date: 2025-1 1-25 13:19+0330\n"5 "POT-Creation-Date: 2025-12-29 11:22+0330\n" 6 "PO-Revision-Date: 2025-12-29 11:26+0330\n" 7 7 "Language-Team: \n" 8 8 "MIME-Version: 1.0\n" … … 21 21 22 22 #. Plugin Name of the plugin/theme 23 #: aicontify.php:1 31 aicontify.php:132dashboard.php:7 tabsPosts.php:1123 #: aicontify.php:129 aicontify.php:130 dashboard.php:7 tabsPosts.php:11 24 24 msgid "AiContify" 25 25 msgstr "کانتی فای" 26 26 27 #: aicontify.php:14 2 aicontify.php:14327 #: aicontify.php:140 aicontify.php:141 28 28 msgid "Settings" 29 29 msgstr "تنظیمات" 30 30 31 #: aicontify.php:1 51 aicontify.php:15231 #: aicontify.php:149 aicontify.php:150 32 32 msgid "Premium" 33 33 msgstr "پریمیوم" 34 34 35 #: aicontify.php:16 735 #: aicontify.php:165 36 36 msgid "Supercharge Your Content with AiContify Premium" 37 37 msgstr "محتوای خود را با کانتی فای پریمیوم قدرتمند کنید" 38 38 39 #: aicontify.php:16 939 #: aicontify.php:167 40 40 msgid "Unlock advanced AI models, faster content creation, and exclusive tools designed to elevate your WooCommerce content." 41 41 msgstr "به مدلهای پیشرفته هوش مصنوعی، تولید محتوای سریعتر و ابزارهای اختصاصی برای ارتقای محتوای ووکامرس خود دسترسی پیدا کنید." 42 42 43 #: aicontify.php:17 3 aicontify.php:21243 #: aicontify.php:171 aicontify.php:210 44 44 msgid "Ready to Boost Your Content?" 45 45 msgstr "برای تقویت محتوای خود آمادهاید؟" 46 46 47 #: aicontify.php:17 4 aicontify.php:21347 #: aicontify.php:172 aicontify.php:211 48 48 msgid "Join thousands of creators and businesses using AiContify Premium to supercharge their WooCommerce content." 49 49 msgstr "به هزاران تولیدکننده محتوا و کسبوکار بپیوندید که از کانتی فای پریمیوم برای تقویت محتوای ووکامرس خود استفاده میکنند." 50 50 51 #: aicontify.php:17 6 aicontify.php:21551 #: aicontify.php:174 aicontify.php:213 52 52 msgid "Upgrade to Premium" 53 53 msgstr "ارتقا به پریمیوم" 54 54 55 #: aicontify.php:1 8055 #: aicontify.php:178 56 56 msgid "Why Go Premium?" 57 57 msgstr "چرا پریمیوم؟" 58 58 59 #: aicontify.php:18 459 #: aicontify.php:182 60 60 msgid "Advanced AI Models" 61 61 msgstr "مدلهای پیشرفته هوش مصنوعی" 62 62 63 #: aicontify.php:18 563 #: aicontify.php:183 64 64 msgid "Access premium AI models for smarter, higher-quality content generation." 65 65 msgstr "به مدلهای پریمیوم هوش مصنوعی برای تولید محتوای هوشمندتر و باکیفیتتر دسترسی داشته باشید." 66 66 67 #: aicontify.php:18 967 #: aicontify.php:187 68 68 msgid "Faster Generation" 69 69 msgstr "تولید سریعتر" 70 70 71 #: aicontify.php:1 9071 #: aicontify.php:188 72 72 msgid "Generate content up to 3x faster than the free version." 73 73 msgstr "محتوا را تا ۳ برابر سریعتر از نسخه رایگان تولید کنید." 74 74 75 #: aicontify.php:19 475 #: aicontify.php:192 76 76 msgid "WooCommerce Product Content" 77 77 msgstr "محتوای محصول ووکامرس" 78 78 79 #: aicontify.php:19 679 #: aicontify.php:194 80 80 msgid "With a valid premium license, you can generate complete content for WooCommerce products including short and long descriptions. Fully SEO optimized and ready to publish." 81 81 msgstr "با داشتن لایسنس معتبر پریمیوم میتوانید محتوای کامل برای محصولات ووکامرس شامل توضیحات کوتاه و بلند تولید کنید. کاملاً بهینهشده برای سئو و آماده انتشار." 82 82 83 #: aicontify.php: 20183 #: aicontify.php:199 84 84 msgid "Pro Version Features" 85 85 msgstr "ویژگیهای نسخه حرفهای" 86 86 87 #: aicontify.php:20 387 #: aicontify.php:201 88 88 msgid "Includes all features from the free version." 89 89 msgstr "شامل تمام ویژگیهای نسخه رایگان." 90 90 91 #: aicontify.php:20 491 #: aicontify.php:202 92 92 msgid "Full support for Pages and WooCommerce products." 93 93 msgstr "پشتیبانی کامل از صفحات و محصولات ووکامرس." 94 94 95 #: aicontify.php:20 595 #: aicontify.php:203 96 96 msgid "Faster processing and higher accuracy using advanced AI." 97 97 msgstr "پردازش سریعتر و دقت بالاتر با استفاده از هوش مصنوعی پیشرفته." 98 98 99 #: aicontify.php:20 6dashboard.php:4299 #: aicontify.php:204 dashboard.php:42 100 100 msgid "Separate custom prompt configuration for each section: main article, FAQ, SEO title, meta description, WooCommerce product description." 101 101 msgstr "پیکربندی پرامپت سفارشی جداگانه برای هر بخش: مقاله اصلی، پرسش و پاسخ، عنوان سئو، توضیح متا، توضیحات محصول ووکامرس." 102 102 103 #: aicontify.php:20 7dashboard.php:43103 #: aicontify.php:205 dashboard.php:43 104 104 msgid "Easy activation through a premium license." 105 105 msgstr "فعالسازی آسان از طریق لایسنس پریمیوم." 106 106 107 #: aicontify.php:20 8107 #: aicontify.php:206 108 108 msgid "Designed for professional users who need precise, customizable AI-generated content for websites and online stores." 109 109 msgstr "طراحیشده برای کاربران حرفهای که به محتوای تولیدشده توسط هوش مصنوعی دقیق و قابل سفارشیسازی برای وبسایتها و فروشگاههای آنلاین نیاز دارند." 110 110 111 #: aicontify.php:2 20111 #: aicontify.php:218 112 112 msgid "Need Help?" 113 113 msgstr "کمک میخواهید؟" 114 114 115 #: aicontify.php:2 21115 #: aicontify.php:219 116 116 msgid "Our support team is available for setup, guidance, and technical questions." 117 117 msgstr "تیم پشتیبانی ما برای راهاندازی، راهنمایی و سوالات فنی در دسترس است." 118 118 119 #: aicontify.php:22 3119 #: aicontify.php:221 120 120 msgid "Telegram:" 121 121 msgstr "تلگرام:" 122 122 123 #: aicontify.php:22 5123 #: aicontify.php:223 124 124 msgid "Email:" 125 125 msgstr "ایمیل:" … … 134 134 135 135 #: dashboard.php:20 136 msgid " Free Version Features"137 msgstr " ویژگیهای نسخه رایگان"136 msgid "🆓 Free Version Features" 137 msgstr "🆓 ویژگیهای نسخه رایگان" 138 138 139 139 #: dashboard.php:22 … … 166 166 167 167 #: dashboard.php:34 168 msgid " Pro Version, More Power!"169 msgstr " نسخه حرفهای، قدرت بیشتر!"168 msgid "🚀 Pro Version, More Power!" 169 msgstr "🚀 نسخه حرفهای، قدرت بیشتر!" 170 170 171 171 #: dashboard.php:36 … … 245 245 msgstr "شما دسترسی لازم برای مشاهده این صفحه را ندارید." 246 246 247 #: settings.php: 82247 #: settings.php:96 248 248 msgid "AiContify Settings" 249 249 msgstr "تنظیمات کانتی فای" 250 250 251 #: settings.php:2 64251 #: settings.php:285 252 252 msgid "Main Settings" 253 253 msgstr "تنظیمات اصلی" 254 254 255 #: settings.php:2 67255 #: settings.php:288 256 256 msgid "Content Prompt" 257 257 msgstr "پرامپت محتوا" 258 258 259 #: settings.php:2 70settings/tab-faq.php:14259 #: settings.php:291 settings/tab-faq.php:14 260 260 msgid "FAQ Prompt" 261 261 msgstr "پرامپت پرسش و پاسخ" 262 262 263 #: settings.php:2 73263 #: settings.php:294 264 264 msgid "SEO Title Prompt" 265 265 msgstr "پرامپت عنوان سئو" 266 266 267 #: settings.php:2 76267 #: settings.php:297 268 268 msgid "SEO Meta Prompt" 269 269 msgstr "پرامپت توضیح متا" 270 270 271 #: settings.php:3 01271 #: settings.php:322 272 272 msgid "Save Settings" 273 273 msgstr "ذخیره تنظیمات" 274 274 275 #: settings.php:3 19275 #: settings.php:340 276 276 msgid "This field must include {keyword} if not empty." 277 277 msgstr "اگر این فیلد خالی نیست، باید شامل {keyword} باشد." 278 278 279 #: settings.php:3 33279 #: settings.php:354 280 280 msgid "Brand title cannot be empty." 281 281 msgstr "عنوان برند نمیتواند خالی باشد." 282 282 283 #: settings.php:3 58283 #: settings.php:383 284 284 msgid "Max 300 characters." 285 285 msgstr "حداکثر ۳۰۰ کاراکتر." … … 313 313 msgstr "تنظیمات نوشته" 314 314 315 #: settings/tab-content.php:42 settings/tab-content.php:71 settings/tab-content.php:98 settings/tab-faq.php:42 settings/tab-faq.php:125 settings/tab-seo-meta.php:42 settings/tab-seo-meta.php:72 settings/tab-seo-title.php:42 settings/tab-seo-title.php:70 315 #: settings/tab-content.php:42 settings/tab-content.php:72 settings/tab-content.php:99 settings/tab-content.php:126 settings/tab-faq.php:42 settings/tab-faq.php:126 settings/tab-faq.php:205 settings/tab-seo-meta.php:42 316 #: settings/tab-seo-meta.php:73 settings/tab-seo-meta.php:102 settings/tab-seo-title.php:42 settings/tab-seo-title.php:71 settings/tab-seo-title.php:98 316 317 msgid "Custom Prompt (Optional)" 317 318 msgstr "پرامپت سفارشی (اختیاری)" 318 319 319 #: settings/tab-content.php:53 settings/tab-content.php:82 settings/tab-content.php:109 settings/tab-faq.php:53 settings/tab-faq.php:136 settings/tab-seo-meta.php:53 settings/tab-seo-meta.php:83 settings/tab-seo-title.php:53 settings/tab-seo-title.php:81 320 #: settings/tab-content.php:53 settings/tab-content.php:83 settings/tab-content.php:110 settings/tab-content.php:137 settings/tab-faq.php:53 settings/tab-faq.php:137 settings/tab-faq.php:216 settings/tab-seo-meta.php:53 321 #: settings/tab-seo-meta.php:84 settings/tab-seo-meta.php:113 settings/tab-seo-title.php:53 settings/tab-seo-title.php:82 settings/tab-seo-title.php:109 320 322 msgid "Leave empty to use default." 321 323 msgstr "برای استفاده از پیشفرض خالی بگذارید." 322 324 323 325 #. translators: %s: {keyword} placeholder 324 #: settings/tab-content.php:56 settings/tab-content.php:85 settings/tab-faq.php:56 settings/tab-faq.php:139 settings/tab-seo-meta.php:57 settings/tab-seo-meta.php:87 settings/tab-seo-title.php:56 settings/tab-seo-title.php:84 326 #: settings/tab-content.php:56 settings/tab-content.php:86 settings/tab-content.php:113 settings/tab-faq.php:56 settings/tab-faq.php:140 settings/tab-faq.php:219 settings/tab-seo-meta.php:57 settings/tab-seo-meta.php:88 327 #: settings/tab-seo-meta.php:117 settings/tab-seo-title.php:56 settings/tab-seo-title.php:85 settings/tab-seo-title.php:112 325 328 #, php-format 326 329 msgid "If filled, must include %s." 327 330 msgstr "اگر پر شده باشد، باید شامل %s باشد." 328 331 329 #: settings/tab-content.php:66 settings/tab-faq.php:120 settings/tab-seo-meta.php:67 settings/tab-seo-title.php:65 332 #: settings/tab-content.php:67 settings/tab-faq.php:121 settings/tab-seo-meta.php:68 settings/tab-seo-title.php:66 333 msgid "Page Settings" 334 msgstr "تنظیمات صفحه" 335 336 #: settings/tab-content.php:94 settings/tab-faq.php:200 settings/tab-seo-meta.php:97 settings/tab-seo-title.php:93 330 337 msgid "Product Settings" 331 338 msgstr "تنظیمات محصول" 332 339 333 #: settings/tab-content.php: 93334 msgid "Short Description "335 msgstr "توضیح کوتاه "340 #: settings/tab-content.php:121 341 msgid "Short Description product" 342 msgstr "توضیح کوتاه محصول" 336 343 337 344 #. translators: %s: {keyword} placeholder 338 #: settings/tab-content.php:1 12345 #: settings/tab-content.php:140 339 346 #, php-format 340 347 msgid "If filled, must include %s. Max 300 chars." … … 365 372 msgstr "آیدی فیلد ACF برای پاسخ." 366 373 367 #: settings/tab-faq.php:149 368 msgid "Product Article ID" 369 msgstr "آیدی مقاله محصول" 370 371 #: settings/tab-faq.php:160 374 #: settings/tab-faq.php:150 375 msgid "Page ID" 376 msgstr "آیدی صفحه" 377 378 #: settings/tab-faq.php:161 379 msgid "ACF repeater field ID for page." 380 msgstr "آیدی فیلد تکرارشونده ACF برای صفحه." 381 382 #: settings/tab-faq.php:167 383 msgid "Page Question ID" 384 msgstr "آیدی سوال صفحه" 385 386 #: settings/tab-faq.php:178 387 msgid "ACF field ID for page question." 388 msgstr "آیدی فیلد ACF برای سوال صفحه." 389 390 #: settings/tab-faq.php:184 391 msgid "Page Answer ID" 392 msgstr "آیدی پاسخ صفحه" 393 394 #: settings/tab-faq.php:195 395 msgid "ACF field ID for page answer." 396 msgstr "آیدی فیلد ACF برای پاسخ صفحه." 397 398 #: settings/tab-faq.php:229 399 msgid "Product ID" 400 msgstr "آیدی محصول" 401 402 #: settings/tab-faq.php:240 372 403 msgid "ACF field ID for product." 373 404 msgstr "آیدی فیلد ACF برای محصول." 374 405 375 #: settings/tab-faq.php: 166406 #: settings/tab-faq.php:246 376 407 msgid "Product Question ID" 377 408 msgstr "آیدی سوال محصول" 378 409 379 #: settings/tab-faq.php: 177410 #: settings/tab-faq.php:257 380 411 msgid "ACF field ID for product question." 381 412 msgstr "آیدی فیلد ACF برای سوال محصول." 382 413 383 #: settings/tab-faq.php: 183414 #: settings/tab-faq.php:263 384 415 msgid "Product Answer ID" 385 416 msgstr "آیدی پاسخ محصول" 386 417 387 #: settings/tab-faq.php: 194418 #: settings/tab-faq.php:274 388 419 msgid "ACF field ID for product answer." 389 420 msgstr "آیدی فیلد ACF برای پاسخ محصول." … … 490 521 491 522 #: tabsPosts.php:51 523 msgid "Title Suggestion Generation" 524 msgstr "تولید پیشنهاد عنوان" 525 526 #: tabsPosts.php:54 492 527 msgid "Main Content Generation" 493 528 msgstr "تولید محتوای اصلی" 494 529 495 #: tabsPosts.php:5 4 tabsPosts.php:170530 #: tabsPosts.php:57 tabsPosts.php:214 496 531 msgid "Edit Main Content" 497 532 msgstr "ویرایش محتوای اصلی" 498 533 499 #: tabsPosts.php: 57534 #: tabsPosts.php:60 500 535 msgid "FAQ Generation" 501 536 msgstr "تولید پرسش و پاسخ" 502 537 503 #: tabsPosts.php:6 0538 #: tabsPosts.php:63 504 539 msgid "SEO Title Generation" 505 540 msgstr "تولید عنوان سئو" 506 541 507 #: tabsPosts.php:6 3542 #: tabsPosts.php:66 508 543 msgid "SEO Description Generation" 509 544 msgstr "تولید توضیح متا" 510 545 511 #: tabsPosts.php:71 546 #: tabsPosts.php:74 547 msgid "How to Generate Title Suggestions with One Click" 548 msgstr "چگونه پیشنهادهای عنوان را با یک کلیک تولید کنیم" 549 550 #: tabsPosts.php:78 tabsPosts.php:269 tabsPosts.php:365 tabsPosts.php:505 551 msgid "Enter the post title at the top of the page." 552 msgstr "عنوان نوشته را در بالای صفحه وارد کنید." 553 554 #: tabsPosts.php:81 555 msgid "Fill in the \"Keyword / Topic\" field with your main keyword or topic." 556 msgstr "فیلد «کلمه کلیدی / موضوع» را با کلمه کلیدی اصلی یا موضوع خود پر کنید." 557 558 #: tabsPosts.php:84 tabsPosts.php:275 559 msgid "Click \"Save Draft\" to save your changes." 560 msgstr "روی «ذخیره پیشنویس» کلیک کنید تا تغییرات ذخیره شود." 561 562 #: tabsPosts.php:87 563 msgid "Finally, click the blue button \"Generate Title Suggestions\"." 564 msgstr "در نهایت روی دکمه آبی «تولید پیشنهاد عنوان» کلیک کنید." 565 566 #: tabsPosts.php:92 567 msgid "You will receive several title suggestions - choose the best one and update your post title!" 568 msgstr "چند پیشنهاد عنوان دریافت خواهید کرد - بهترین را انتخاب کنید و عنوان نوشته خود را بهروزرسانی کنید!" 569 570 #: tabsPosts.php:97 571 msgid "Generate Title Suggestions" 572 msgstr "تولید پیشنهاد عنوان" 573 574 #: tabsPosts.php:102 tabsPosts.php:146 tabsPosts.php:219 tabsPosts.php:292 tabsPosts.php:405 tabsPosts.php:544 575 msgid "Please do not refresh the page until the operation is complete." 576 msgstr "لطفاً تا پایان عملیات صفحه را رفرش نکنید." 577 578 #: tabsPosts.php:115 512 579 msgid "How to Generate Main Post Content with One Click?" 513 580 msgstr "چگونه محتوای اصلی نوشته را با یک کلیک تولید کنیم؟" 514 581 515 #: tabsPosts.php: 76582 #: tabsPosts.php:120 516 583 msgid "First, enter the post title at the top of the page." 517 584 msgstr "ابتدا عنوان نوشته را در بالای صفحه وارد کنید." 518 585 519 #: tabsPosts.php: 80586 #: tabsPosts.php:124 520 587 msgid "Fill in the \"Keyword / Topic\" field with your main keywords or post topic (e.g., Samsung Galaxy A54, sunscreen cream, etc.)." 521 588 msgstr "فیلد «کلمه کلیدی / موضوع» را با کلمه کلیدی اصلی یا موضوع نوشته پر کنید (مثلاً: سامسونگ گلکسی A54، کرم ضدآفتاب و غیره)." 522 589 523 #: tabsPosts.php: 84590 #: tabsPosts.php:128 524 591 msgid "Click the \"Save Draft\" button to save your changes." 525 msgstr "روی دکمه «ذخیره پیشنویس» کلیک کنید ."526 527 #: tabsPosts.php: 88592 msgstr "روی دکمه «ذخیره پیشنویس» کلیک کنید تا تغییرات ذخیره شود." 593 594 #: tabsPosts.php:132 528 595 msgid "Finally, click the blue \"Generate Main Content\" button." 529 596 msgstr "در نهایت روی دکمه آبی «تولید محتوای اصلی» کلیک کنید." 530 597 531 #: tabsPosts.php: 93 tabsPosts.php:239 tabsPosts.php:328 tabsPosts.php:431598 #: tabsPosts.php:137 tabsPosts.php:283 tabsPosts.php:379 tabsPosts.php:518 532 599 msgid "After completion, the full SEO-optimized content will automatically appear in the editor — you can edit it or publish directly!" 533 600 msgstr "پس از اتمام، محتوای کامل بهینهشده برای سئو بهصورت خودکار در ویرایشگر ظاهر میشود — میتوانید آن را ویرایش یا مستقیماً منتشر کنید!" 534 601 535 #: tabsPosts.php: 97602 #: tabsPosts.php:141 536 603 msgid "Generate Main Content" 537 604 msgstr "تولید محتوای اصلی" 538 605 539 #: tabsPosts.php:102 tabsPosts.php:175 tabsPosts.php:248 tabsPosts.php:337 tabsPosts.php:440 540 msgid "Please do not refresh the page until the operation is complete." 541 msgstr "لطفاً تا پایان عملیات صفحه را رفرش نکنید." 542 543 #: tabsPosts.php:111 tabsPosts.php:184 tabsPosts.php:257 tabsPosts.php:346 tabsPosts.php:449 606 #: tabsPosts.php:155 tabsPosts.php:228 tabsPosts.php:301 tabsPosts.php:414 tabsPosts.php:553 544 607 msgid "Custom Prompt Settings" 545 608 msgstr "تنظیمات پرامپت سفارشی" 546 609 547 #: tabsPosts.php:1 17610 #: tabsPosts.php:161 548 611 msgid "Custom Prompt for Content Generation" 549 612 msgstr "پرامپت سفارشی برای تولید محتوا" 550 613 551 #: tabsPosts.php:1 30 tabsPosts.php:203 tabsPosts.php:276 tabsPosts.php:365 tabsPosts.php:468614 #: tabsPosts.php:174 tabsPosts.php:247 tabsPosts.php:320 tabsPosts.php:433 tabsPosts.php:572 552 615 msgid "You can leave this field empty → the plugin will use the smart default prompt and give you excellent results." 553 616 msgstr "میتوانید این فیلد را خالی بگذارید → افزونه از پرامپت هوشمند پیشفرض استفاده میکند و نتیجه عالی به شما میدهد." 554 617 555 #: tabsPosts.php:1 33 tabsPosts.php:206 tabsPosts.php:279 tabsPosts.php:368 tabsPosts.php:471618 #: tabsPosts.php:177 tabsPosts.php:250 tabsPosts.php:323 tabsPosts.php:436 tabsPosts.php:575 556 619 msgid "Want even better and more customized results? Write your own instruction here." 557 620 msgstr "میخواهید نتیجه بهتر و سفارشیتری بگیرید؟ دستورالعمل خود را اینجا بنویسید." 558 621 559 #: tabsPosts.php:1 36 tabsPosts.php:209 tabsPosts.php:282 tabsPosts.php:371 tabsPosts.php:474622 #: tabsPosts.php:180 tabsPosts.php:253 tabsPosts.php:326 tabsPosts.php:439 tabsPosts.php:578 560 623 msgid "The clearer and more precise your prompt, the better and more accurate the result will be!" 561 624 msgstr "هرچه پرامپت شما واضحتر و دقیقتر باشد، نتیجه بهتر و دقیقتری خواهید گرفت!" 562 625 563 #: tabsPosts.php:1 48626 #: tabsPosts.php:192 564 627 msgid "How to Edit the Generated Main Content" 565 628 msgstr "چگونه محتوای تولیدشده اصلی را ویرایش کنیم" 566 629 567 #: tabsPosts.php:1 53630 #: tabsPosts.php:197 568 631 msgid "First make sure you have generated the content in the \"Generate Main Content\" tab." 569 632 msgstr "ابتدا مطمئن شوید که محتوا را در تب «تولید محتوای اصلی» تولید کردهاید." 570 633 571 #: tabsPosts.php: 157634 #: tabsPosts.php:201 572 635 msgid "If you want to change anything (make it longer/shorter, add details, change tone, fix something, etc.), write your exact request in the box below." 573 636 msgstr "اگر میخواهید چیزی را تغییر دهید (طولانیتر/کوتاهتر کنید، جزئیات اضافه کنید، لحن را تغییر دهید، چیزی را اصلاح کنید و غیره)، درخواست دقیق خود را در کادر زیر بنویسید." 574 637 575 #: tabsPosts.php: 161638 #: tabsPosts.php:205 576 639 msgid "Then click the \"Edit Main Content\" button." 577 640 msgstr "سپس روی دکمه «ویرایش محتوای اصلی» کلیک کنید." 578 641 579 #: tabsPosts.php: 166642 #: tabsPosts.php:210 580 643 msgid "You can edit as many times as you like until the text is exactly the way you want!" 581 644 msgstr "میتوانید هر چند بار که خواستید ویرایش کنید تا متن دقیقاً همان چیزی شود که میخواهید!" 582 645 583 #: tabsPosts.php: 190646 #: tabsPosts.php:234 584 647 msgid "Custom Prompt for Edit Content" 585 648 msgstr "پرامپت سفارشی برای ویرایش محتوا" 586 649 587 #: tabsPosts.php:2 21650 #: tabsPosts.php:265 588 651 msgid "How to Generate FAQ (Frequently Asked Questions) with One Click" 589 652 msgstr "چگونه پرسش و پاسخ (سوالات متداول) را با یک کلیک تولید کنیم" 590 653 591 #: tabsPosts.php:225 tabsPosts.php:314 tabsPosts.php:418 592 msgid "Enter the post title at the top of the page." 593 msgstr "عنوان نوشته را در بالای صفحه وارد کنید." 594 595 #: tabsPosts.php:228 654 #: tabsPosts.php:272 596 655 msgid "Fill in the \"Keyword / Topic\" field with the post name or main keywords." 597 656 msgstr "فیلد «کلمه کلیدی / موضوع» را با نام نوشته یا کلمه کلیدی اصلی پر کنید." 598 657 599 #: tabsPosts.php:231 600 msgid "Click \"Save Draft\" to save your changes." 601 msgstr "روی «ذخیره پیشنویس» کلیک کنید." 602 603 #: tabsPosts.php:234 658 #: tabsPosts.php:278 604 659 msgid "Finally, click the blue button \"Generate FAQ\"." 605 660 msgstr "در نهایت روی دکمه آبی «تولید پرسش و پاسخ» کلیک کنید." 606 661 607 #: tabsPosts.php:2 43662 #: tabsPosts.php:287 608 663 msgid "Generate FAQs" 609 664 msgstr "تولید پرسش و پاسخ" 610 665 611 #: tabsPosts.php: 263666 #: tabsPosts.php:307 612 667 msgid "Custom Prompt for FAQ Generation" 613 668 msgstr "پرامپت سفارشی برای تولید پرسش و پاسخ" 614 669 615 #: tabsPosts.php:3 10670 #: tabsPosts.php:361 616 671 msgid "How to Generate SEO Title & Meta Description with One Click" 617 672 msgstr "چگونه عنوان سئو و توضیح متا را با یک کلیک تولید کنیم" 618 673 619 #: tabsPosts.php:3 17674 #: tabsPosts.php:368 620 675 msgid "Fill in the \"Keyword / Topic\" field with your main focus keyword." 621 676 msgstr "فیلد «کلمه کلیدی / موضوع» را با کلمه کلیدی اصلی خود پر کنید." 622 677 623 #: tabsPosts.php:3 20 tabsPosts.php:424678 #: tabsPosts.php:371 tabsPosts.php:511 624 679 msgid "Click \"Save Draft\" to save the post." 625 msgstr "روی «ذخیره پیشنویس» کلیک کنید ."626 627 #: tabsPosts.php:3 23680 msgstr "روی «ذخیره پیشنویس» کلیک کنید تا نوشته ذخیره شود." 681 682 #: tabsPosts.php:374 628 683 msgid "Click the blue button \"Generate SEO Title & Meta\"." 629 684 msgstr "روی دکمه آبی «تولید عنوان سئو و توضیح متا» کلیک کنید." 630 685 631 #: tabsPosts.php:332 686 #: tabsPosts.php:384 tabsPosts.php:523 687 msgid "Both plugins detected!" 688 msgstr "هر دو افزونه شناسایی شدند!" 689 690 #: tabsPosts.php:385 tabsPosts.php:524 691 msgid "Priority: Yoast SEO will be used. If Yoast is disabled, Rank Math will be used." 692 msgstr "اولویت: از Yoast SEO استفاده خواهد شد. اگر Yoast غیرفعال باشد، از Rank Math استفاده میشود." 693 694 #: tabsPosts.php:389 tabsPosts.php:528 695 msgid "Rank Math SEO detected!" 696 msgstr "افزونه Rank Math SEO شناسایی شد!" 697 698 #: tabsPosts.php:390 699 msgid "Your SEO titles will be saved in Rank Math." 700 msgstr "عنوانهای سئو شما در Rank Math ذخیره خواهند شد." 701 702 #: tabsPosts.php:394 tabsPosts.php:533 703 msgid "Yoast SEO detected!" 704 msgstr "افزونه Yoast SEO شناسایی شد!" 705 706 #: tabsPosts.php:395 707 msgid "Your SEO titles will be saved in Yoast." 708 msgstr "عنوانهای سئو شما در Yoast ذخیره خواهند شد." 709 710 #: tabsPosts.php:400 632 711 msgid "Generate SEO Title" 633 712 msgstr "تولید عنوان سئو" 634 713 635 #: tabsPosts.php: 352714 #: tabsPosts.php:420 636 715 msgid "Custom Prompt for SEO Title Generation" 637 716 msgstr "پرامپت سفارشی برای تولید عنوان سئو" 638 717 639 #: tabsPosts.php:383 tabsPosts.php:486 640 msgid "Yoast SEO Plugin Required" 641 msgstr "افزونه Yoast SEO لازم است" 642 643 #: tabsPosts.php:386 tabsPosts.php:489 644 msgid "This feature requires the Yoast SEO plugin to be installed and activated." 645 msgstr "این ویژگی نیاز دارد افزونه Yoast SEO نصب و فعال باشد." 646 647 #: tabsPosts.php:389 tabsPosts.php:492 648 msgid "After activation, refresh the page." 649 msgstr "پس از فعالسازی، صفحه را رفرش کنید." 650 651 #: tabsPosts.php:414 718 #: tabsPosts.php:451 tabsPosts.php:590 719 msgid "Warning:" 720 msgstr "هشدار:" 721 722 #: tabsPosts.php:451 tabsPosts.php:590 723 msgid "SEO Plugin Required" 724 msgstr "افزونه سئو لازم است" 725 726 #: tabsPosts.php:454 tabsPosts.php:593 727 msgid "This feature requires either Yoast SEO or Rank Math to be installed and activated." 728 msgstr "این ویژگی نیاز دارد یکی از افزونههای Yoast SEO یا Rank Math نصب و فعال باشد." 729 730 #: tabsPosts.php:457 tabsPosts.php:596 731 msgid "Supported SEO Plugins:" 732 msgstr "افزونههای سئو پشتیبانیشده:" 733 734 #: tabsPosts.php:460 tabsPosts.php:463 tabsPosts.php:599 tabsPosts.php:602 735 msgid "Free & Premium versions supported" 736 msgstr "نسخههای رایگان و پریمیوم پشتیبانی میشوند" 737 738 #: tabsPosts.php:469 tabsPosts.php:608 739 msgid "Install and activate one of the above plugins, then refresh this page." 740 msgstr "یکی از افزونههای بالا را نصب و فعال کنید، سپس این صفحه را رفرش کنید." 741 742 #: tabsPosts.php:501 652 743 msgid "How to Generate Meta Description with One Click" 653 744 msgstr "چگونه توضیح متا را با یک کلیک تولید کنیم" 654 745 655 #: tabsPosts.php: 421746 #: tabsPosts.php:508 656 747 msgid "Fill in the \"Keyword / Topic\" field with your focus keyword." 657 748 msgstr "فیلد «کلمه کلیدی / موضوع» را با کلمه کلیدی اصلی پر کنید." 658 749 659 #: tabsPosts.php: 427750 #: tabsPosts.php:514 660 751 msgid "Click the blue button \"Generate Meta Description\"." 661 752 msgstr "روی دکمه آبی «تولید توضیح متا» کلیک کنید." 662 753 663 #: tabsPosts.php:435 754 #: tabsPosts.php:529 755 msgid "Your meta descriptions will be saved in Rank Math." 756 msgstr "توضیحات متا شما در Rank Math ذخیره خواهند شد." 757 758 #: tabsPosts.php:534 759 msgid "Your meta descriptions will be saved in Yoast." 760 msgstr "توضیحات متا شما در Yoast ذخیره خواهند شد." 761 762 #: tabsPosts.php:539 664 763 msgid "Generate Meta Description" 665 764 msgstr "تولید توضیح متا" 666 765 667 #: tabsPosts.php: 455766 #: tabsPosts.php:559 668 767 msgid "Custom Prompt for Meta Description Generation" 669 768 msgstr "پرامپت سفارشی برای تولید توضیح متا" -
aicontify/trunk/languages/aicontify.pot
r3402369 r3428884 4 4 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" 5 5 "Project-Id-Version: AiContify\n" 6 "POT-Creation-Date: 2025-1 1-25 13:13+0330\n"7 "PO-Revision-Date: 2025-1 1-25 13:12+0330\n"6 "POT-Creation-Date: 2025-12-29 11:22+0330\n" 7 "PO-Revision-Date: 2025-12-29 11:13+0330\n" 8 8 "Last-Translator: \n" 9 9 "Language-Team: \n" … … 23 23 24 24 #. Plugin Name of the plugin/theme 25 #: aicontify.php:1 31 aicontify.php:132dashboard.php:7 tabsPosts.php:1125 #: aicontify.php:129 aicontify.php:130 dashboard.php:7 tabsPosts.php:11 26 26 msgid "AiContify" 27 27 msgstr "" 28 28 29 #: aicontify.php:14 2 aicontify.php:14329 #: aicontify.php:140 aicontify.php:141 30 30 msgid "Settings" 31 31 msgstr "" 32 32 33 #: aicontify.php:1 51 aicontify.php:15233 #: aicontify.php:149 aicontify.php:150 34 34 msgid "Premium" 35 35 msgstr "" 36 36 37 #: aicontify.php:165 38 msgid "Supercharge Your Content with AiContify Premium" 39 msgstr "" 40 37 41 #: aicontify.php:167 38 msgid "Supercharge Your Content with AiContify Premium"39 msgstr ""40 41 #: aicontify.php:16942 42 msgid "" 43 43 "Unlock advanced AI models, faster content creation, and exclusive tools " … … 45 45 msgstr "" 46 46 47 #: aicontify.php:17 3 aicontify.php:21247 #: aicontify.php:171 aicontify.php:210 48 48 msgid "Ready to Boost Your Content?" 49 49 msgstr "" 50 50 51 #: aicontify.php:17 4 aicontify.php:21351 #: aicontify.php:172 aicontify.php:211 52 52 msgid "" 53 53 "Join thousands of creators and businesses using AiContify Premium to " … … 55 55 msgstr "" 56 56 57 #: aicontify.php:17 6 aicontify.php:21557 #: aicontify.php:174 aicontify.php:213 58 58 msgid "Upgrade to Premium" 59 59 msgstr "" 60 60 61 #: aicontify.php:1 8061 #: aicontify.php:178 62 62 msgid "Why Go Premium?" 63 63 msgstr "" 64 64 65 #: aicontify.php:18 465 #: aicontify.php:182 66 66 msgid "Advanced AI Models" 67 67 msgstr "" 68 68 69 #: aicontify.php:18 569 #: aicontify.php:183 70 70 msgid "" 71 71 "Access premium AI models for smarter, higher-quality content generation." 72 72 msgstr "" 73 73 74 #: aicontify.php:18 974 #: aicontify.php:187 75 75 msgid "Faster Generation" 76 76 msgstr "" 77 77 78 #: aicontify.php:1 9078 #: aicontify.php:188 79 79 msgid "Generate content up to 3x faster than the free version." 80 80 msgstr "" 81 81 82 #: aicontify.php:192 83 msgid "WooCommerce Product Content" 84 msgstr "" 85 82 86 #: aicontify.php:194 83 msgid "WooCommerce Product Content"84 msgstr ""85 86 #: aicontify.php:19687 87 msgid "" 88 88 "With a valid premium license, you can generate complete content for " … … 91 91 msgstr "" 92 92 93 #: aicontify.php:199 94 msgid "Pro Version Features" 95 msgstr "" 96 93 97 #: aicontify.php:201 94 msgid "Pro Version Features" 98 msgid "Includes all features from the free version." 99 msgstr "" 100 101 #: aicontify.php:202 102 msgid "Full support for Pages and WooCommerce products." 95 103 msgstr "" 96 104 97 105 #: aicontify.php:203 98 msgid "Includes all features from the free version."99 msgstr ""100 101 #: aicontify.php:204102 msgid "Full support for Pages and WooCommerce products."103 msgstr ""104 105 #: aicontify.php:205106 106 msgid "Faster processing and higher accuracy using advanced AI." 107 107 msgstr "" 108 108 109 #: aicontify.php:20 6dashboard.php:42109 #: aicontify.php:204 dashboard.php:42 110 110 msgid "" 111 111 "Separate custom prompt configuration for each section: main article, FAQ, " … … 113 113 msgstr "" 114 114 115 #: aicontify.php:20 7dashboard.php:43115 #: aicontify.php:205 dashboard.php:43 116 116 msgid "Easy activation through a premium license." 117 117 msgstr "" 118 118 119 #: aicontify.php:20 8119 #: aicontify.php:206 120 120 msgid "" 121 121 "Designed for professional users who need precise, customizable AI-generated " … … 123 123 msgstr "" 124 124 125 #: aicontify.php:2 20125 #: aicontify.php:218 126 126 msgid "Need Help?" 127 127 msgstr "" 128 128 129 #: aicontify.php:219 130 msgid "" 131 "Our support team is available for setup, guidance, and technical questions." 132 msgstr "" 133 129 134 #: aicontify.php:221 130 msgid "" 131 "Our support team is available for setup, guidance, and technical questions." 135 msgid "Telegram:" 132 136 msgstr "" 133 137 134 138 #: aicontify.php:223 135 msgid "Telegram:"136 msgstr ""137 138 #: aicontify.php:225139 139 msgid "Email:" 140 140 msgstr "" … … 269 269 msgstr "" 270 270 271 #: settings.php: 82271 #: settings.php:96 272 272 msgid "AiContify Settings" 273 273 msgstr "" 274 274 275 #: settings.php:2 64275 #: settings.php:285 276 276 msgid "Main Settings" 277 277 msgstr "" 278 278 279 #: settings.php:2 67279 #: settings.php:288 280 280 msgid "Content Prompt" 281 281 msgstr "" 282 282 283 #: settings.php:2 70settings/tab-faq.php:14283 #: settings.php:291 settings/tab-faq.php:14 284 284 msgid "FAQ Prompt" 285 285 msgstr "" 286 286 287 #: settings.php:2 73287 #: settings.php:294 288 288 msgid "SEO Title Prompt" 289 289 msgstr "" 290 290 291 #: settings.php:2 76291 #: settings.php:297 292 292 msgid "SEO Meta Prompt" 293 293 msgstr "" 294 294 295 #: settings.php:3 01295 #: settings.php:322 296 296 msgid "Save Settings" 297 297 msgstr "" 298 298 299 #: settings.php:3 19299 #: settings.php:340 300 300 msgid "This field must include {keyword} if not empty." 301 301 msgstr "" 302 302 303 #: settings.php:3 33303 #: settings.php:354 304 304 msgid "Brand title cannot be empty." 305 305 msgstr "" 306 306 307 #: settings.php:3 58307 #: settings.php:383 308 308 msgid "Max 300 characters." 309 309 msgstr "" … … 347 347 msgstr "" 348 348 349 #: settings/tab-content.php:42 settings/tab-content.php:71 350 #: settings/tab-content.php:98 settings/tab-faq.php:42 settings/tab-faq.php:125 351 #: settings/tab-seo-meta.php:42 settings/tab-seo-meta.php:72 352 #: settings/tab-seo-title.php:42 settings/tab-seo-title.php:70 349 #: settings/tab-content.php:42 settings/tab-content.php:72 350 #: settings/tab-content.php:99 settings/tab-content.php:126 351 #: settings/tab-faq.php:42 settings/tab-faq.php:126 settings/tab-faq.php:205 352 #: settings/tab-seo-meta.php:42 settings/tab-seo-meta.php:73 353 #: settings/tab-seo-meta.php:102 settings/tab-seo-title.php:42 354 #: settings/tab-seo-title.php:71 settings/tab-seo-title.php:98 353 355 msgid "Custom Prompt (Optional)" 354 356 msgstr "" 355 357 356 #: settings/tab-content.php:53 settings/tab-content.php:82 357 #: settings/tab-content.php:109 settings/tab-faq.php:53 358 #: settings/tab-faq.php:136 settings/tab-seo-meta.php:53 359 #: settings/tab-seo-meta.php:83 settings/tab-seo-title.php:53 360 #: settings/tab-seo-title.php:81 358 #: settings/tab-content.php:53 settings/tab-content.php:83 359 #: settings/tab-content.php:110 settings/tab-content.php:137 360 #: settings/tab-faq.php:53 settings/tab-faq.php:137 settings/tab-faq.php:216 361 #: settings/tab-seo-meta.php:53 settings/tab-seo-meta.php:84 362 #: settings/tab-seo-meta.php:113 settings/tab-seo-title.php:53 363 #: settings/tab-seo-title.php:82 settings/tab-seo-title.php:109 361 364 msgid "Leave empty to use default." 362 365 msgstr "" 363 366 364 367 #. translators: %s: {keyword} placeholder 365 #: settings/tab-content.php:56 settings/tab-content.php:85 366 #: settings/tab-faq.php:56 settings/tab-faq.php:139 367 #: settings/tab-seo-meta.php:57 settings/tab-seo-meta.php:87 368 #: settings/tab-seo-title.php:56 settings/tab-seo-title.php:84 368 #: settings/tab-content.php:56 settings/tab-content.php:86 369 #: settings/tab-content.php:113 settings/tab-faq.php:56 370 #: settings/tab-faq.php:140 settings/tab-faq.php:219 371 #: settings/tab-seo-meta.php:57 settings/tab-seo-meta.php:88 372 #: settings/tab-seo-meta.php:117 settings/tab-seo-title.php:56 373 #: settings/tab-seo-title.php:85 settings/tab-seo-title.php:112 369 374 #, php-format 370 375 msgid "If filled, must include %s." 371 376 msgstr "" 372 377 373 #: settings/tab-content.php:66 settings/tab-faq.php:120 374 #: settings/tab-seo-meta.php:67 settings/tab-seo-title.php:65 378 #: settings/tab-content.php:67 settings/tab-faq.php:121 379 #: settings/tab-seo-meta.php:68 settings/tab-seo-title.php:66 380 msgid "Page Settings" 381 msgstr "" 382 383 #: settings/tab-content.php:94 settings/tab-faq.php:200 384 #: settings/tab-seo-meta.php:97 settings/tab-seo-title.php:93 375 385 msgid "Product Settings" 376 386 msgstr "" 377 387 378 #: settings/tab-content.php: 93379 msgid "Short Description "388 #: settings/tab-content.php:121 389 msgid "Short Description product" 380 390 msgstr "" 381 391 382 392 #. translators: %s: {keyword} placeholder 383 #: settings/tab-content.php:1 12393 #: settings/tab-content.php:140 384 394 #, php-format 385 395 msgid "If filled, must include %s. Max 300 chars." … … 410 420 msgstr "" 411 421 412 #: settings/tab-faq.php:149 413 msgid "Product Article ID" 414 msgstr "" 415 416 #: settings/tab-faq.php:160 422 #: settings/tab-faq.php:150 423 msgid "Page ID" 424 msgstr "" 425 426 #: settings/tab-faq.php:161 427 msgid "ACF repeater field ID for page." 428 msgstr "" 429 430 #: settings/tab-faq.php:167 431 msgid "Page Question ID" 432 msgstr "" 433 434 #: settings/tab-faq.php:178 435 msgid "ACF field ID for page question." 436 msgstr "" 437 438 #: settings/tab-faq.php:184 439 msgid "Page Answer ID" 440 msgstr "" 441 442 #: settings/tab-faq.php:195 443 msgid "ACF field ID for page answer." 444 msgstr "" 445 446 #: settings/tab-faq.php:229 447 msgid "Product ID" 448 msgstr "" 449 450 #: settings/tab-faq.php:240 417 451 msgid "ACF field ID for product." 418 452 msgstr "" 419 453 420 #: settings/tab-faq.php: 166454 #: settings/tab-faq.php:246 421 455 msgid "Product Question ID" 422 456 msgstr "" 423 457 424 #: settings/tab-faq.php: 177458 #: settings/tab-faq.php:257 425 459 msgid "ACF field ID for product question." 426 460 msgstr "" 427 461 428 #: settings/tab-faq.php: 183462 #: settings/tab-faq.php:263 429 463 msgid "Product Answer ID" 430 464 msgstr "" 431 465 432 #: settings/tab-faq.php: 194466 #: settings/tab-faq.php:274 433 467 msgid "ACF field ID for product answer." 434 468 msgstr "" … … 537 571 538 572 #: tabsPosts.php:51 573 msgid "Title Suggestion Generation" 574 msgstr "" 575 576 #: tabsPosts.php:54 539 577 msgid "Main Content Generation" 540 578 msgstr "" 541 579 542 #: tabsPosts.php:5 4 tabsPosts.php:170580 #: tabsPosts.php:57 tabsPosts.php:214 543 581 msgid "Edit Main Content" 544 582 msgstr "" 545 583 546 #: tabsPosts.php: 57584 #: tabsPosts.php:60 547 585 msgid "FAQ Generation" 548 586 msgstr "" 549 587 550 #: tabsPosts.php:6 0588 #: tabsPosts.php:63 551 589 msgid "SEO Title Generation" 552 590 msgstr "" 553 591 554 #: tabsPosts.php:6 3592 #: tabsPosts.php:66 555 593 msgid "SEO Description Generation" 556 594 msgstr "" 557 595 558 #: tabsPosts.php:71 596 #: tabsPosts.php:74 597 msgid "How to Generate Title Suggestions with One Click" 598 msgstr "" 599 600 #: tabsPosts.php:78 tabsPosts.php:269 tabsPosts.php:365 tabsPosts.php:505 601 msgid "Enter the post title at the top of the page." 602 msgstr "" 603 604 #: tabsPosts.php:81 605 msgid "Fill in the \"Keyword / Topic\" field with your main keyword or topic." 606 msgstr "" 607 608 #: tabsPosts.php:84 tabsPosts.php:275 609 msgid "Click \"Save Draft\" to save your changes." 610 msgstr "" 611 612 #: tabsPosts.php:87 613 msgid "Finally, click the blue button \"Generate Title Suggestions\"." 614 msgstr "" 615 616 #: tabsPosts.php:92 617 msgid "" 618 "You will receive several title suggestions - choose the best one and update " 619 "your post title!" 620 msgstr "" 621 622 #: tabsPosts.php:97 623 msgid "Generate Title Suggestions" 624 msgstr "" 625 626 #: tabsPosts.php:102 tabsPosts.php:146 tabsPosts.php:219 tabsPosts.php:292 627 #: tabsPosts.php:405 tabsPosts.php:544 628 msgid "Please do not refresh the page until the operation is complete." 629 msgstr "" 630 631 #: tabsPosts.php:115 559 632 msgid "How to Generate Main Post Content with One Click?" 560 633 msgstr "" 561 634 562 #: tabsPosts.php: 76635 #: tabsPosts.php:120 563 636 msgid "First, enter the post title at the top of the page." 564 637 msgstr "" 565 638 566 #: tabsPosts.php: 80639 #: tabsPosts.php:124 567 640 msgid "" 568 641 "Fill in the \"Keyword / Topic\" field with your main keywords or post topic " … … 570 643 msgstr "" 571 644 572 #: tabsPosts.php: 84645 #: tabsPosts.php:128 573 646 msgid "Click the \"Save Draft\" button to save your changes." 574 647 msgstr "" 575 648 576 #: tabsPosts.php: 88649 #: tabsPosts.php:132 577 650 msgid "Finally, click the blue \"Generate Main Content\" button." 578 651 msgstr "" 579 652 580 #: tabsPosts.php: 93 tabsPosts.php:239 tabsPosts.php:328 tabsPosts.php:431653 #: tabsPosts.php:137 tabsPosts.php:283 tabsPosts.php:379 tabsPosts.php:518 581 654 msgid "" 582 655 "After completion, the full SEO-optimized content will automatically appear " … … 584 657 msgstr "" 585 658 586 #: tabsPosts.php: 97659 #: tabsPosts.php:141 587 660 msgid "Generate Main Content" 588 661 msgstr "" 589 662 590 #: tabsPosts.php:102 tabsPosts.php:175 tabsPosts.php:248 tabsPosts.php:337 591 #: tabsPosts.php:440 592 msgid "Please do not refresh the page until the operation is complete." 593 msgstr "" 594 595 #: tabsPosts.php:111 tabsPosts.php:184 tabsPosts.php:257 tabsPosts.php:346 596 #: tabsPosts.php:449 663 #: tabsPosts.php:155 tabsPosts.php:228 tabsPosts.php:301 tabsPosts.php:414 664 #: tabsPosts.php:553 597 665 msgid "Custom Prompt Settings" 598 666 msgstr "" 599 667 600 #: tabsPosts.php:1 17668 #: tabsPosts.php:161 601 669 msgid "Custom Prompt for Content Generation" 602 670 msgstr "" 603 671 604 #: tabsPosts.php:1 30 tabsPosts.php:203 tabsPosts.php:276 tabsPosts.php:365605 #: tabsPosts.php: 468672 #: tabsPosts.php:174 tabsPosts.php:247 tabsPosts.php:320 tabsPosts.php:433 673 #: tabsPosts.php:572 606 674 msgid "" 607 675 "You can leave this field empty → the plugin will use the smart default " … … 609 677 msgstr "" 610 678 611 #: tabsPosts.php:1 33 tabsPosts.php:206 tabsPosts.php:279 tabsPosts.php:368612 #: tabsPosts.php: 471679 #: tabsPosts.php:177 tabsPosts.php:250 tabsPosts.php:323 tabsPosts.php:436 680 #: tabsPosts.php:575 613 681 msgid "" 614 682 "Want even better and more customized results? Write your own instruction " … … 616 684 msgstr "" 617 685 618 #: tabsPosts.php:1 36 tabsPosts.php:209 tabsPosts.php:282 tabsPosts.php:371619 #: tabsPosts.php: 474686 #: tabsPosts.php:180 tabsPosts.php:253 tabsPosts.php:326 tabsPosts.php:439 687 #: tabsPosts.php:578 620 688 msgid "" 621 689 "The clearer and more precise your prompt, the better and more accurate the " … … 623 691 msgstr "" 624 692 625 #: tabsPosts.php:1 48693 #: tabsPosts.php:192 626 694 msgid "How to Edit the Generated Main Content" 627 695 msgstr "" 628 696 629 #: tabsPosts.php:1 53697 #: tabsPosts.php:197 630 698 msgid "" 631 699 "First make sure you have generated the content in the \"Generate Main Content" … … 633 701 msgstr "" 634 702 635 #: tabsPosts.php: 157703 #: tabsPosts.php:201 636 704 msgid "" 637 705 "If you want to change anything (make it longer/shorter, add details, change " … … 639 707 msgstr "" 640 708 641 #: tabsPosts.php: 161709 #: tabsPosts.php:205 642 710 msgid "Then click the \"Edit Main Content\" button." 643 711 msgstr "" 644 712 645 #: tabsPosts.php: 166713 #: tabsPosts.php:210 646 714 msgid "" 647 715 "You can edit as many times as you like until the text is exactly the way you " … … 649 717 msgstr "" 650 718 651 #: tabsPosts.php: 190719 #: tabsPosts.php:234 652 720 msgid "Custom Prompt for Edit Content" 653 721 msgstr "" 654 722 655 #: tabsPosts.php:2 21723 #: tabsPosts.php:265 656 724 msgid "How to Generate FAQ (Frequently Asked Questions) with One Click" 657 725 msgstr "" 658 726 659 #: tabsPosts.php:225 tabsPosts.php:314 tabsPosts.php:418 660 msgid "Enter the post title at the top of the page." 661 msgstr "" 662 663 #: tabsPosts.php:228 727 #: tabsPosts.php:272 664 728 msgid "" 665 729 "Fill in the \"Keyword / Topic\" field with the post name or main keywords." 666 730 msgstr "" 667 731 668 #: tabsPosts.php:231 669 msgid "Click \"Save Draft\" to save your changes." 670 msgstr "" 671 672 #: tabsPosts.php:234 732 #: tabsPosts.php:278 673 733 msgid "Finally, click the blue button \"Generate FAQ\"." 674 734 msgstr "" 675 735 676 #: tabsPosts.php:2 43736 #: tabsPosts.php:287 677 737 msgid "Generate FAQs" 678 738 msgstr "" 679 739 680 #: tabsPosts.php: 263740 #: tabsPosts.php:307 681 741 msgid "Custom Prompt for FAQ Generation" 682 742 msgstr "" 683 743 684 #: tabsPosts.php:3 10744 #: tabsPosts.php:361 685 745 msgid "How to Generate SEO Title & Meta Description with One Click" 686 746 msgstr "" 687 747 688 #: tabsPosts.php:3 17748 #: tabsPosts.php:368 689 749 msgid "Fill in the \"Keyword / Topic\" field with your main focus keyword." 690 750 msgstr "" 691 751 692 #: tabsPosts.php:3 20 tabsPosts.php:424752 #: tabsPosts.php:371 tabsPosts.php:511 693 753 msgid "Click \"Save Draft\" to save the post." 694 754 msgstr "" 695 755 696 #: tabsPosts.php:3 23756 #: tabsPosts.php:374 697 757 msgid "Click the blue button \"Generate SEO Title & Meta\"." 698 758 msgstr "" 699 759 700 #: tabsPosts.php:332 760 #: tabsPosts.php:384 tabsPosts.php:523 761 msgid "Both plugins detected!" 762 msgstr "" 763 764 #: tabsPosts.php:385 tabsPosts.php:524 765 msgid "" 766 "Priority: Yoast SEO will be used. If Yoast is disabled, Rank Math will be " 767 "used." 768 msgstr "" 769 770 #: tabsPosts.php:389 tabsPosts.php:528 771 msgid "Rank Math SEO detected!" 772 msgstr "" 773 774 #: tabsPosts.php:390 775 msgid "Your SEO titles will be saved in Rank Math." 776 msgstr "" 777 778 #: tabsPosts.php:394 tabsPosts.php:533 779 msgid "Yoast SEO detected!" 780 msgstr "" 781 782 #: tabsPosts.php:395 783 msgid "Your SEO titles will be saved in Yoast." 784 msgstr "" 785 786 #: tabsPosts.php:400 701 787 msgid "Generate SEO Title" 702 788 msgstr "" 703 789 704 #: tabsPosts.php: 352790 #: tabsPosts.php:420 705 791 msgid "Custom Prompt for SEO Title Generation" 706 792 msgstr "" 707 793 708 #: tabsPosts.php:383 tabsPosts.php:486 709 msgid "Yoast SEO Plugin Required" 710 msgstr "" 711 712 #: tabsPosts.php:386 tabsPosts.php:489 713 msgid "" 714 "This feature requires the Yoast SEO plugin to be installed and activated." 715 msgstr "" 716 717 #: tabsPosts.php:389 tabsPosts.php:492 718 msgid "After activation, refresh the page." 719 msgstr "" 720 721 #: tabsPosts.php:414 794 #: tabsPosts.php:451 tabsPosts.php:590 795 msgid "Warning:" 796 msgstr "" 797 798 #: tabsPosts.php:451 tabsPosts.php:590 799 msgid "SEO Plugin Required" 800 msgstr "" 801 802 #: tabsPosts.php:454 tabsPosts.php:593 803 msgid "" 804 "This feature requires either Yoast SEO or Rank Math to be installed and " 805 "activated." 806 msgstr "" 807 808 #: tabsPosts.php:457 tabsPosts.php:596 809 msgid "Supported SEO Plugins:" 810 msgstr "" 811 812 #: tabsPosts.php:460 tabsPosts.php:463 tabsPosts.php:599 tabsPosts.php:602 813 msgid "Free & Premium versions supported" 814 msgstr "" 815 816 #: tabsPosts.php:469 tabsPosts.php:608 817 msgid "Install and activate one of the above plugins, then refresh this page." 818 msgstr "" 819 820 #: tabsPosts.php:501 722 821 msgid "How to Generate Meta Description with One Click" 723 822 msgstr "" 724 823 725 #: tabsPosts.php: 421824 #: tabsPosts.php:508 726 825 msgid "Fill in the \"Keyword / Topic\" field with your focus keyword." 727 826 msgstr "" 728 827 729 #: tabsPosts.php: 427828 #: tabsPosts.php:514 730 829 msgid "Click the blue button \"Generate Meta Description\"." 731 830 msgstr "" 732 831 733 #: tabsPosts.php:435 832 #: tabsPosts.php:529 833 msgid "Your meta descriptions will be saved in Rank Math." 834 msgstr "" 835 836 #: tabsPosts.php:534 837 msgid "Your meta descriptions will be saved in Yoast." 838 msgstr "" 839 840 #: tabsPosts.php:539 734 841 msgid "Generate Meta Description" 735 842 msgstr "" 736 843 737 #: tabsPosts.php: 455844 #: tabsPosts.php:559 738 845 msgid "Custom Prompt for Meta Description Generation" 739 846 msgstr "" -
aicontify/trunk/readme.txt
r3402369 r3428884 4 4 Requires at least: 5.0 5 5 Tested up to: 6.8 6 Stable tag: 6.0.06 Stable tag: 7.0.0 7 7 Requires PHP: 7.4 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html 10 A free AI-powered plugin for generating high-quality content directly in the WordPress editor using the AiContify AI model. 11 == Description == 12 AiContify is a lightweight, secure, and intelligent WordPress plugin designed to generate complete content using artificial intelligence — without any license key or payment. 13 The plugin is fully compliant with WordPress.org rules and focuses on generating high-quality, SEO-optimized content directly inside the WordPress editor. 14 🆓 Free Version 15 The free version of AiContify is activated in the Posts section of WordPress and includes the following features: 10 16 11 A free AI-powered plugin for generating high-quality content directly in the WordPress editor using the AiContify AI model. 17 Generate full article content by simply entering a keyword 18 Create content up to 4000 words in length 19 Edit main content 20 Automatically generate FAQ (Frequently Asked Questions) related to the article 21 Generate SEO Title and Meta Description compatible with SEO plugins like Yoast SEO and Rank Math 22 Generate suggested titles for posts 23 Support for 13 languages including Persian, English, Spanish, French, German, Chinese, Japanese, Russian, Arabic, Hindi, Portuguese, Italian, and Korean 24 Option to choose between the default server prompt or a custom user-defined prompt 25 Fully compatible with both pre-built and custom WordPress themes 26 Works instantly without any complex configuration 12 27 13 == Description ==14 28 15 **AiContify** is a lightweight, secure, and intelligent WordPress plugin designed to generate complete content using artificial intelligence — without any license key or payment. 29 🚀 Pro Version 30 The AiContify Pro edition includes all features from the free version, plus enhanced capabilities for professional users and content creators. 31 Pro features include: 16 32 17 The plugin is fully compliant with WordPress.org rules and focuses on generating high-quality, SEO-optimized content directly inside the WordPress editor. 33 Generate full article content for Posts by simply entering a keyword 34 Create content up to 4000 words in length for Posts 35 Edit main content for Posts 36 Automatically generate FAQ (Frequently Asked Questions) for Posts 37 Generate SEO Title and Meta Description for Posts compatible with Yoast SEO and Rank Math 38 Generate suggested titles for posts 39 Generate full article content for Pages by simply entering a keyword 40 Create content up to 4000 words in length for Pages 41 Edit main content for Pages 42 Automatically generate FAQ (Frequently Asked Questions) for Pages 43 Generate SEO Title and Meta Description for Pages compatible with Yoast SEO and Rank Math 44 Generate suggested titles for pages 45 Support for 13 languages for Pages (same as Posts) 46 Option to choose between the default server prompt or a custom user-defined prompt for Pages 47 Generate content for WooCommerce products (short and long descriptions) 48 Generate suggested titles for WooCommerce products 49 Faster processing and higher accuracy using advanced AI models 50 Separate custom prompt configuration for each section: 51 WooCommerce product Main content 52 Edit WooCommerce product Main content 53 WooCommerce product FAQ section 54 WooCommerce product SEO title 55 WooCommerce product Meta description 56 WooCommerce product Shortdescription 57 Easy activation through a premium license 18 58 19 ---20 21 ### 🆓 Free Version22 23 The free version of AiContify is activated in the **Posts** section of WordPress and includes the following features:24 25 - Generate full article content by simply entering a keyword26 - Create content up to **4000 words** in length27 - Edit main content28 - Automatically generate **FAQ (Frequently Asked Questions)** related to the article29 - Generate **SEO Title** and **Meta Description** compatible with SEO plugins like Yoast SEO30 - Support for **13 languages** including Persian, English, Spanish, French, German, Chinese, Japanese, Russian, Arabic, Hindi, Portuguese, Italian, and Korean31 - Option to choose between the **default server prompt** or a **custom user-defined prompt**32 - Fully compatible with both pre-built and custom WordPress themes33 - Works instantly without any complex configuration34 35 ---36 37 ### 🚀 Pro Version38 39 The **AiContify Pro** edition includes all features from the free version, plus enhanced capabilities for professional users and content creators.40 41 **Pro features include:**42 - Generate content for **WooCommerce products** (short and long descriptions)43 - Full support for **Pages** in addition to Posts44 - Faster processing and higher accuracy using advanced AI models45 - Separate custom prompt configuration for each section:46 - WooCommerce product Main content47 - Edit WooCommerce product Main content48 - WooCommerce product FAQ section49 - WooCommerce product SEO title50 - WooCommerce product Meta description51 - WooCommerce product Shortdescription52 - Easy activation through a **premium license**53 54 The Pro version is designed for professional users who need faster, more precise, and deeply customizable AI-generated content for websites and online stores.55 56 ---57 59 58 60 = General Features = 59 * One-click content generation directly inside Gutenberg60 * SEO-friendly and natural language output61 * Secure, sanitized, and properly enqueued assets62 * No external dependencies or license validation required63 61 64 > **Note:** The free version focuses on generating article content. 65 > Advanced features like WooCommerce or SEO automation are available in the Pro version. 62 One-click content generation directly inside Gutenberg 63 SEO-friendly and natural language output 64 Secure, sanitized, and properly enqueued assets 65 No external dependencies or license validation required 66 66 67 --- 67 Note: The free version focuses on generating article content. 68 Advanced features like WooCommerce or SEO automation are available in the Pro version. 68 69 69 70 == External services == 70 71 71 This plugin connects to the AiContify API at: 72 73 `https://webtinus.com/` 74 **Data sent:** Post title and optional prompt (user-provided keyword). 75 **Data received:** AI-generated article content. 76 **Purpose:** To generate original content using the AiContify AI model. 77 **Terms of Service:** https://aicontify.com/terms/ 78 **Privacy Policy:** https://aicontify.com/privacy/ 79 72 https://webtinus.com/ 73 Data sent: Post title and optional prompt (user-provided keyword). 74 Data received: AI-generated article content. 75 Purpose: To generate original content using the AiContify AI model. 76 Terms of Service: https://aicontify.com/terms/ 77 Privacy Policy: https://aicontify.com/privacy/ 80 78 No user data, IP, or site URL is transmitted. Only the title or keyword is sent. 81 82 ---83 84 79 == Installation == 85 80 86 1. Upload the `aicontify` folder to `/wp-content/plugins/` 87 2.Activate the plugin via the WordPress “Plugins” menu88 3.Open any post in the Gutenberg editor89 4. Click the **“Generate with AiContify”**button in the toolbar90 5. Enter a keyword and click **Generate** 91 6.Insert the AI-generated content with a single click81 Upload the aicontify folder to /wp-content/plugins/ 82 Activate the plugin via the WordPress “Plugins” menu 83 Open any post in the Gutenberg editor 84 Click the “Generate with AiContify” button in the toolbar 85 Enter a keyword and click Generate 86 Insert the AI-generated content with a single click 92 87 93 ---94 88 95 89 == Frequently Asked Questions == 96 97 = Do I need an API key or license? = 98 **No.** The free AiContify model works immediately after activation — no setup required. 99 100 = Is this plugin 100% free? = 90 = Do I need an API key or license? = 91 No. The free AiContify model works immediately after activation — no setup required. 92 = Is this plugin 100% free? = 101 93 Yes. The free version is fully functional and contains no locked features. 102 103 = Can I generate FAQs or SEO titles? = 94 = Can I generate FAQs or SEO titles? = 104 95 Yes. The free version supports FAQ and SEO title generation for articles. 105 106 = What’s included in the Pro version? = 96 = What’s included in the Pro version? = 107 97 The Pro version adds WooCommerce product content, page support, faster generation, and advanced prompt customization. 108 109 = Is my data secure? = 98 = Is my data secure? = 110 99 Yes. Only the keyword/title is transmitted. No personal data, emails, or URLs are collected. 111 112 ---113 114 100 == Screenshots == 115 101 116 1. “Generate with AiContify” button in the Gutenberg toolbar 117 2. Keyword input modal for content generation 118 3. AI-generated article ready to insert 119 4. Clean settings page with no license fields 102 “Generate with AiContify” button in the Gutenberg toolbar 103 Keyword input modal for content generation 104 AI-generated article ready to insert 105 Clean settings page with no license fields 120 106 121 ---122 107 123 108 == Changelog == 124 109 = 7.0.0 = December 29, 2025 110 Add Suggested Title 111 Full support for RankMeth plugin 125 112 = 6.0.0 = November 25, 2025 126 113 Add main content editing feature 127 114 Optimize tab descriptions 128 129 115 = 5.1.0 = November 19, 2025 130 116 Rest API optimization 131 132 117 = 5.0.0 = November 19, 2025 133 118 Rest API optimization 134 135 119 = 4.0.0 = November 17, 2025 136 120 Added a custom prompt field inside post editor for more flexible content generation 137 121 Optimized REST API endpoints for faster and more reliable responses 138 139 122 = 3.8.0 = November 15, 2025 140 123 Fixed several issues in the settings page to improve stability and usability 141 142 124 = 3.7.0 = November 13, 2025 143 125 Optimized AI model for improved accuracy and speed 144 126 Edited and updated translation files for broader language coverage 127 = 3.6.0 = November 12, 2025 145 128 146 = 3.6.0 = *November 12, 2025* 147 * Added complete Free/Pro feature comparison 148 * Improved documentation for clarity and compliance 149 * Confirmed compatibility with WordPress.org rules 150 * Optimized bilingual presentation for fa.wordpress.org 151 152 = 3.2.0 = *November 03, 2025* 153 * WordPress.org compliance update 154 * Removed external links and Pro references outside documentation 155 * Focused exclusi 129 Added complete Free/Pro feature comparison 130 Improved documentation for clarity and compliance 131 Confirmed compatibility with WordPress.org rules 132 Optimized bilingual presentation for fa.wordpress.org 133 = 3.2.0 = November 03, 2025 134 WordPress.org compliance update 135 Removed external links and Pro references outside documentation 136 Focused exclusi -
aicontify/trunk/seoDescription.php
r3398370 r3428884 40 40 ]); 41 41 42 if (is_wp_error($result) || empty($result['meta_description'])) { 43 wp_send_json_error(['code' => $result['error_code'] ?? 'err_meta_empty']); 42 // بررسی اگر نتیجه wp_error باشد 43 if (is_wp_error($result)) { 44 wp_send_json_error(['code' => 'err_connection_failed']); 45 } 46 47 // بررسی خطا در نتیجه 48 if (!empty($result['error_code'])) { 49 wp_send_json_error(['code' => $result['error_code']]); 50 } 51 52 // بررسی اگر meta_description خالی باشد 53 if (empty($result['meta_description'])) { 54 wp_send_json_error(['code' => 'err_content_empty']); 44 55 } 45 56 46 57 $meta_description = sanitize_textarea_field(trim($result['meta_description'])); 47 58 48 if (!class_exists('WPSEO_Meta')) { 49 wp_send_json_error(['code' => 'err_yoast_missing']); 59 // بررسی اگر بعد از sanitize خالی شد 60 if (empty($meta_description)) { 61 wp_send_json_error(['code' => 'err_content_empty']); 50 62 } 51 63 52 $saved = update_post_meta($post_id, '_yoast_wpseo_metadesc', $meta_description); 53 if ($saved === false) { 54 wp_send_json_error(['code' => 'err_save_failed']); 64 // بررسی Yoast (اولویت اول) 65 if (class_exists('WPSEO_Meta')) { 66 aicont_save_yoast_meta_description($post_id, $meta_description); 67 } 68 // بررسی Rank Math (اولویت دوم) 69 elseif (defined('RANK_MATH_VERSION') || class_exists('RankMath\Core')) { 70 aicont_save_rankmath_meta_description($post_id, $meta_description); 71 } 72 // اگر هیچ کدام نبود 73 else { 74 wp_send_json_error(['code' => 'err_no_seo_plugin']); 55 75 } 56 76 … … 67 87 } 68 88 89 /** 90 * ذخیره توضیح متا برای Yoast 91 */ 92 function aicont_save_yoast_meta_description($post_id, $meta_description) { 93 update_post_meta($post_id, '_yoast_wpseo_metadesc', $meta_description); 94 95 // اطمینان از ذخیره شدن 96 $saved = get_post_meta($post_id, '_yoast_wpseo_metadesc', true); 97 if ($saved !== $meta_description) { 98 wp_die('Failed to save Yoast meta description'); 99 } 100 } 101 102 /** 103 * ذخیره توضیح متا برای Rank Math - با استفاده از روش رسمی 104 */ 105 function aicont_save_rankmath_meta_description($post_id, $meta_description) { 106 // بررسی Rank Math 107 if (!function_exists('rank_math')) { 108 wp_die('Rank Math is not active'); 109 } 110 111 // روش 1: استفاده از RankMath\Helper::update_post_meta 112 if (method_exists('\RankMath\Helper', 'update_post_meta')) { 113 \RankMath\Helper::update_post_meta('rank_math_description', $meta_description, $post_id); 114 } 115 // روش 2: Update via post meta مستقیم 116 else { 117 update_post_meta($post_id, 'rank_math_description', $meta_description); 118 } 119 120 // اطمینان از ذخیره شدن 121 $saved = get_post_meta($post_id, 'rank_math_description', true); 122 if ($saved !== $meta_description) { 123 // اگر مستقیم کار نکرد، سعی کن با فیلتر 124 do_action('rank_math/before_save_post', $post_id); 125 update_post_meta($post_id, 'rank_math_description', $meta_description); 126 do_action('rank_math/after_save_post', $post_id); 127 } 128 } 129 130 /** 131 * صدا زدن سرور Webtinus برای تولید توضیح متا 132 */ 69 133 function aicont_call_webtinus_meta_description($args) { 70 134 $client_site_url = home_url('', 'https'); … … 83 147 84 148 $response = wp_remote_post($server_url, [ 85 'headers' => ['Content-Type' => 'application/json', 'X-Client-Site' => $client_site_url], 149 'headers' => [ 150 'Content-Type' => 'application/json', 151 'X-Client-Site' => $client_site_url 152 ], 86 153 'body' => $body, 87 154 'timeout' => 90 … … 92 159 } 93 160 94 $data = json_decode(wp_remote_retrieve_body($response), true); 161 $http_code = wp_remote_retrieve_response_code($response); 162 163 if ($http_code !== 200) { 164 return ['error_code' => 'err_server_error']; 165 } 95 166 96 if (empty($data['success']) || empty($data['meta_description'])) { 97 return ['error_code' => $data['error_code'] ?? 'err_meta_empty']; 167 $body_response = wp_remote_retrieve_body($response); 168 169 if (empty($body_response)) { 170 return ['error_code' => 'err_content_empty']; 171 } 172 173 $data = json_decode($body_response, true); 174 175 if (!is_array($data) || json_last_error() !== JSON_ERROR_NONE) { 176 return ['error_code' => 'err_server_error']; 177 } 178 179 if (empty($data['meta_description'])) { 180 return ['error_code' => $data['error_code'] ?? 'err_content_empty']; 98 181 } 99 182 -
aicontify/trunk/seoTitle.php
r3398370 r3428884 40 40 ]); 41 41 42 if (is_wp_error($result) || empty($result['seo_title'])) { 43 wp_send_json_error(['code' => $result['error_code'] ?? 'err_title_empty']); 42 if (is_wp_error($result)) { 43 wp_send_json_error(['code' => 'err_connection_failed']); 44 } 45 46 if (!empty($result['error_code'])) { 47 wp_send_json_error(['code' => $result['error_code']]); 48 } 49 50 if (empty($result['seo_title'])) { 51 wp_send_json_error(['code' => 'err_content_empty']); 44 52 } 45 53 46 54 $seo_title = wp_strip_all_tags(sanitize_text_field($result['seo_title'])); 47 55 48 if ( !class_exists('WPSEO_Meta')) {49 wp_send_json_error(['code' => 'err_ yoast_missing']);56 if (empty($seo_title)) { 57 wp_send_json_error(['code' => 'err_content_empty']); 50 58 } 51 59 52 $saved = update_post_meta($post_id, '_yoast_wpseo_title', $seo_title); 53 if ($saved === false) { 54 wp_send_json_error(['code' => 'err_save_failed']); 60 if (class_exists('WPSEO_Meta')) { 61 aicont_save_yoast_seo_title($post_id, $seo_title); 62 } 63 elseif (defined('RANK_MATH_VERSION') || class_exists('RankMath\Core')) { 64 aicont_save_rankmath_seo_title($post_id, $seo_title); 65 } 66 else { 67 wp_send_json_error(['code' => 'err_no_seo_plugin']); 55 68 } 56 69 … … 65 78 'seo_title' => $seo_title 66 79 ]); 80 } 81 82 function aicont_save_yoast_seo_title($post_id, $seo_title) { 83 update_post_meta($post_id, '_yoast_wpseo_title', $seo_title); 84 85 $saved = get_post_meta($post_id, '_yoast_wpseo_title', true); 86 if ($saved !== $seo_title) { 87 wp_die('Failed to save Yoast SEO title'); 88 } 89 } 90 91 function aicont_save_rankmath_seo_title($post_id, $seo_title) { 92 if (!function_exists('rank_math')) { 93 wp_die('Rank Math is not active'); 94 } 95 96 if (method_exists('\RankMath\Helper', 'update_post_meta')) { 97 \RankMath\Helper::update_post_meta('rank_math_title', $seo_title, $post_id); 98 } 99 else { 100 update_post_meta($post_id, 'rank_math_title', $seo_title); 101 } 102 103 $saved = get_post_meta($post_id, 'rank_math_title', true); 104 if ($saved !== $seo_title) { 105 do_action('rank_math/before_save_post', $post_id); 106 update_post_meta($post_id, 'rank_math_title', $seo_title); 107 do_action('rank_math/after_save_post', $post_id); 108 } 67 109 } 68 110 … … 83 125 84 126 $response = wp_remote_post($server_url, [ 85 'headers' => ['Content-Type' => 'application/json', 'X-Client-Site' => $client_site_url], 127 'headers' => [ 128 'Content-Type' => 'application/json', 129 'X-Client-Site' => $client_site_url 130 ], 86 131 'body' => $body, 87 132 'timeout' => 90 … … 92 137 } 93 138 94 $data = json_decode(wp_remote_retrieve_body($response), true); 139 $http_code = wp_remote_retrieve_response_code($response); 140 141 if ($http_code !== 200) { 142 return ['error_code' => 'err_server_error']; 143 } 95 144 96 if (empty($data['success']) || empty($data['seo_title'])) { 97 return ['error_code' => $data['error_code'] ?? 'err_title_empty']; 145 $body_response = wp_remote_retrieve_body($response); 146 147 if (empty($body_response)) { 148 return ['error_code' => 'err_content_empty']; 149 } 150 151 $data = json_decode($body_response, true); 152 153 if (!is_array($data) || json_last_error() !== JSON_ERROR_NONE) { 154 return ['error_code' => 'err_server_error']; 155 } 156 157 if (empty($data['seo_title'])) { 158 return ['error_code' => $data['error_code'] ?? 'err_content_empty']; 98 159 } 99 160 -
aicontify/trunk/settings.php
r3396224 r3428884 13 13 $site_language = get_option('aicont_plugin_site_language', 'en_US'); 14 14 $site_title = get_option('aicont_plugin_site_title', ''); 15 15 16 $content_prompt_custom = get_option('aicont_plugin_content_prompt_custom', ''); 17 $content_page_prompt_custom = get_option('aicont_plugin_content_page_prompt_custom', ''); 16 18 $content_product_prompt_custom = get_option('aicont_plugin_content_product_prompt_custom', ''); 17 19 $short_description_prompt_custom = get_option('aicont_plugin_short_description_prompt_custom', ''); 20 18 21 $faq_prompt_custom = get_option('aicont_plugin_faq_prompt_custom', ''); 22 $faq_page_prompt_custom = get_option('aicont_plugin_faq_page_prompt_custom', ''); 19 23 $faq_product_prompt_custom = get_option('aicont_plugin_faq_product_prompt_custom', ''); 24 20 25 $seo_title_prompt_custom = get_option('aicont_plugin_seo_title_prompt_custom', ''); 21 $seo_title_product_prompt_custom = get_option('aicont_plugin_seo_title_product_prompt_custom', ''); 26 $seo_page_title_prompt_custom = get_option('aicont_plugin_seo_page_title_prompt_custom', ''); 27 $seo_product_title_prompt_custom = get_option('aicont_plugin_seo_product_title_prompt_custom', ''); 28 22 29 $seo_meta_prompt_custom = get_option('aicont_plugin_seo_meta_prompt_custom', ''); 30 $seo_meta_page_prompt_custom = get_option('aicont_plugin_seo_meta_page_prompt_custom', ''); 23 31 $seo_meta_product_prompt_custom = get_option('aicont_plugin_seo_meta_product_prompt_custom', ''); 32 24 33 $article_id = get_option('aicont_plugin_faq_article_id', ''); 25 34 $question_id = get_option('aicont_plugin_faq_question_id', ''); 26 35 $answer_id = get_option('aicont_plugin_faq_answer_id', ''); 36 37 $page_id = get_option('aicont_plugin_faq_page_article_id', ''); 38 $page_question_id = get_option('aicont_plugin_faq_page_question_id', ''); 39 $page_answer_id = get_option('aicont_plugin_faq_page_answer_id', ''); 40 27 41 $faq_product_article_id = get_option('aicont_plugin_faq_product_article_id', ''); 28 42 $faq_product_question_id = get_option('aicont_plugin_faq_product_question_id', ''); … … 101 115 <input type="hidden" name="aicont_plugin_site_title" value="<?php echo esc_attr($site_title); ?>"> 102 116 103 <!-- ✅ PRESERVE: prompts و ACF fields -->117 <!-- ✅ PRESERVE: All prompts --> 104 118 <input type="hidden" name="aicont_plugin_content_prompt_custom" value="<?php echo esc_attr($content_prompt_custom); ?>"> 119 <input type="hidden" name="aicont_plugin_content_page_prompt_custom" value="<?php echo esc_attr($content_page_prompt_custom); ?>"> 120 <input type="hidden" name="aicont_plugin_content_product_prompt_custom" value="<?php echo esc_attr($content_product_prompt_custom); ?>"> 121 <input type="hidden" name="aicont_plugin_short_description_prompt_custom" value="<?php echo esc_attr($short_description_prompt_custom); ?>"> 105 122 <input type="hidden" name="aicont_plugin_faq_prompt_custom" value="<?php echo esc_attr($faq_prompt_custom); ?>"> 123 <input type="hidden" name="aicont_plugin_faq_page_prompt_custom" value="<?php echo esc_attr($faq_page_prompt_custom); ?>"> 124 <input type="hidden" name="aicont_plugin_faq_product_prompt_custom" value="<?php echo esc_attr($faq_product_prompt_custom); ?>"> 106 125 <input type="hidden" name="aicont_plugin_seo_title_prompt_custom" value="<?php echo esc_attr($seo_title_prompt_custom); ?>"> 126 <input type="hidden" name="aicont_plugin_seo_page_title_prompt_custom" value="<?php echo esc_attr($seo_page_title_prompt_custom); ?>"> 127 <input type="hidden" name="aicont_plugin_seo_product_title_prompt_custom" value="<?php echo esc_attr($seo_product_title_prompt_custom); ?>"> 107 128 <input type="hidden" name="aicont_plugin_seo_meta_prompt_custom" value="<?php echo esc_attr($seo_meta_prompt_custom); ?>"> 108 <?php if ($is_pro_active): ?> 109 <input type="hidden" name="aicont_plugin_content_product_prompt_custom" value="<?php echo esc_attr($content_product_prompt_custom); ?>"> 110 <input type="hidden" name="aicont_plugin_short_description_prompt_custom" value="<?php echo esc_attr($short_description_prompt_custom); ?>"> 111 <input type="hidden" name="aicont_plugin_faq_product_prompt_custom" value="<?php echo esc_attr($faq_product_prompt_custom); ?>"> 112 <input type="hidden" name="aicont_plugin_seo_title_product_prompt_custom" value="<?php echo esc_attr($seo_title_product_prompt_custom); ?>"> 113 <input type="hidden" name="aicont_plugin_seo_meta_product_prompt_custom" value="<?php echo esc_attr($seo_meta_product_prompt_custom); ?>"> 114 <?php endif; ?> 129 <input type="hidden" name="aicont_plugin_seo_meta_page_prompt_custom" value="<?php echo esc_attr($seo_meta_page_prompt_custom); ?>"> 130 <input type="hidden" name="aicont_plugin_seo_meta_product_prompt_custom" value="<?php echo esc_attr($seo_meta_product_prompt_custom); ?>"> 115 131 <?php if ($template_type === 'custom'): ?> 116 132 <input type="hidden" name="aicont_plugin_faq_article_id" value="<?php echo esc_attr($article_id); ?>"> 117 133 <input type="hidden" name="aicont_plugin_faq_question_id" value="<?php echo esc_attr($question_id); ?>"> 118 134 <input type="hidden" name="aicont_plugin_faq_answer_id" value="<?php echo esc_attr($answer_id); ?>"> 119 <?php if ($is_pro_active): ?> 120 <input type="hidden" name="aicont_plugin_faq_product_article_id" value="<?php echo esc_attr($faq_product_article_id); ?>"> 121 <input type="hidden" name="aicont_plugin_faq_product_question_id" value="<?php echo esc_attr($faq_product_question_id); ?>"> 122 <input type="hidden" name="aicont_plugin_faq_product_answer_id" value="<?php echo esc_attr($faq_product_answer_id); ?>"> 123 <?php endif; ?> 135 <input type="hidden" name="aicont_plugin_faq_page_article_id" value="<?php echo esc_attr($page_id); ?>"> 136 <input type="hidden" name="aicont_plugin_faq_page_question_id" value="<?php echo esc_attr($page_question_id); ?>"> 137 <input type="hidden" name="aicont_plugin_faq_page_answer_id" value="<?php echo esc_attr($page_answer_id); ?>"> 138 <input type="hidden" name="aicont_plugin_faq_product_article_id" value="<?php echo esc_attr($faq_product_article_id); ?>"> 139 <input type="hidden" name="aicont_plugin_faq_product_question_id" value="<?php echo esc_attr($faq_product_question_id); ?>"> 140 <input type="hidden" name="aicont_plugin_faq_product_answer_id" value="<?php echo esc_attr($faq_product_answer_id); ?>"> 124 141 <?php endif; ?> 125 142 <?php endif; ?> 126 143 127 <!-- ✅ CONTENT TAB: Content prompts -->144 <!-- ✅ CONTENT TAB: Content prompts --> 128 145 <?php if ($current_tab === 'content'): ?> 129 146 <input type="hidden" name="aicont_plugin_content_prompt_custom" value="<?php echo esc_attr($content_prompt_custom); ?>"> 130 <?php if ($is_pro_active): ?> 131 <input type="hidden" name="aicont_plugin_content_product_prompt_custom" value="<?php echo esc_attr($content_product_prompt_custom); ?>"> 132 <input type="hidden" name="aicont_plugin_short_description_prompt_custom" value="<?php echo esc_attr($short_description_prompt_custom); ?>"> 133 <?php endif; ?> 134 135 <!-- ✅ PRESERVE: prompts --> 147 <input type="hidden" name="aicont_plugin_content_page_prompt_custom" value="<?php echo esc_attr($content_page_prompt_custom); ?>"> 148 <input type="hidden" name="aicont_plugin_content_product_prompt_custom" value="<?php echo esc_attr($content_product_prompt_custom); ?>"> 149 <input type="hidden" name="aicont_plugin_short_description_prompt_custom" value="<?php echo esc_attr($short_description_prompt_custom); ?>"> 150 151 <!-- ✅ PRESERVE: All other prompts and settings --> 136 152 <input type="hidden" name="aicont_plugin_template_type" value="<?php echo esc_attr($template_type); ?>"> 137 153 <input type="hidden" name="aicont_plugin_site_language" value="<?php echo esc_attr($site_language); ?>"> 138 154 <input type="hidden" name="aicont_plugin_site_title" value="<?php echo esc_attr($site_title); ?>"> 139 155 <input type="hidden" name="aicont_plugin_faq_prompt_custom" value="<?php echo esc_attr($faq_prompt_custom); ?>"> 156 <input type="hidden" name="aicont_plugin_faq_page_prompt_custom" value="<?php echo esc_attr($faq_page_prompt_custom); ?>"> 157 <input type="hidden" name="aicont_plugin_faq_product_prompt_custom" value="<?php echo esc_attr($faq_product_prompt_custom); ?>"> 140 158 <input type="hidden" name="aicont_plugin_seo_title_prompt_custom" value="<?php echo esc_attr($seo_title_prompt_custom); ?>"> 159 <input type="hidden" name="aicont_plugin_seo_page_title_prompt_custom" value="<?php echo esc_attr($seo_page_title_prompt_custom); ?>"> 160 <input type="hidden" name="aicont_plugin_seo_product_title_prompt_custom" value="<?php echo esc_attr($seo_product_title_prompt_custom); ?>"> 141 161 <input type="hidden" name="aicont_plugin_seo_meta_prompt_custom" value="<?php echo esc_attr($seo_meta_prompt_custom); ?>"> 142 <?php if ($is_pro_active): ?> 143 <input type="hidden" name="aicont_plugin_faq_product_prompt_custom" value="<?php echo esc_attr($faq_product_prompt_custom); ?>"> 144 <input type="hidden" name="aicont_plugin_seo_title_product_prompt_custom" value="<?php echo esc_attr($seo_title_product_prompt_custom); ?>"> 145 <input type="hidden" name="aicont_plugin_seo_meta_product_prompt_custom" value="<?php echo esc_attr($seo_meta_product_prompt_custom); ?>"> 146 <?php endif; ?> 147 148 <!-- ✅ PRESERVE: ACF fields --> 162 <input type="hidden" name="aicont_plugin_seo_meta_page_prompt_custom" value="<?php echo esc_attr($seo_meta_page_prompt_custom); ?>"> 163 <input type="hidden" name="aicont_plugin_seo_meta_product_prompt_custom" value="<?php echo esc_attr($seo_meta_product_prompt_custom); ?>"> 164 165 <!-- ✅ PRESERVE: ACF fields --> 149 166 <?php if ($template_type === 'custom'): ?> 150 167 <input type="hidden" name="aicont_plugin_faq_article_id" value="<?php echo esc_attr($article_id); ?>"> 151 168 <input type="hidden" name="aicont_plugin_faq_question_id" value="<?php echo esc_attr($question_id); ?>"> 152 169 <input type="hidden" name="aicont_plugin_faq_answer_id" value="<?php echo esc_attr($answer_id); ?>"> 153 <?php if ($is_pro_active): ?> 154 <input type="hidden" name="aicont_plugin_faq_product_article_id" value="<?php echo esc_attr($faq_product_article_id); ?>"> 155 <input type="hidden" name="aicont_plugin_faq_product_question_id" value="<?php echo esc_attr($faq_product_question_id); ?>"> 156 <input type="hidden" name="aicont_plugin_faq_product_answer_id" value="<?php echo esc_attr($faq_product_answer_id); ?>"> 157 <?php endif; ?> 170 <input type="hidden" name="aicont_plugin_faq_page_article_id" value="<?php echo esc_attr($page_id); ?>"> 171 <input type="hidden" name="aicont_plugin_faq_page_question_id" value="<?php echo esc_attr($page_question_id); ?>"> 172 <input type="hidden" name="aicont_plugin_faq_page_answer_id" value="<?php echo esc_attr($page_answer_id); ?>"> 173 <input type="hidden" name="aicont_plugin_faq_product_article_id" value="<?php echo esc_attr($faq_product_article_id); ?>"> 174 <input type="hidden" name="aicont_plugin_faq_product_question_id" value="<?php echo esc_attr($faq_product_question_id); ?>"> 175 <input type="hidden" name="aicont_plugin_faq_product_answer_id" value="<?php echo esc_attr($faq_product_answer_id); ?>"> 158 176 <?php endif; ?> 159 177 <?php endif; ?> 160 178 161 <!-- ✅ FAQ TAB: FAQ prompts -->179 <!-- ✅ FAQ TAB: FAQ prompts --> 162 180 <?php if ($current_tab === 'faq'): ?> 163 181 <input type="hidden" name="aicont_plugin_faq_prompt_custom" value="<?php echo esc_attr($faq_prompt_custom); ?>"> 164 <?php if ($is_pro_active): ?> 165 <input type="hidden" name="aicont_plugin_faq_product_prompt_custom" value="<?php echo esc_attr($faq_product_prompt_custom); ?>"> 166 <?php endif; ?> 182 <input type="hidden" name="aicont_plugin_faq_page_prompt_custom" value="<?php echo esc_attr($faq_page_prompt_custom); ?>"> 183 <input type="hidden" name="aicont_plugin_faq_product_prompt_custom" value="<?php echo esc_attr($faq_product_prompt_custom); ?>"> 167 184 <?php if ($template_type === 'custom'): ?> 168 185 <input type="hidden" name="aicont_plugin_faq_article_id" value="<?php echo esc_attr($article_id); ?>"> 169 186 <input type="hidden" name="aicont_plugin_faq_question_id" value="<?php echo esc_attr($question_id); ?>"> 170 187 <input type="hidden" name="aicont_plugin_faq_answer_id" value="<?php echo esc_attr($answer_id); ?>"> 171 <?php if ($is_pro_active): ?> 172 <input type="hidden" name="aicont_plugin_faq_product_article_id" value="<?php echo esc_attr($faq_product_article_id); ?>"> 173 <input type="hidden" name="aicont_plugin_faq_product_question_id" value="<?php echo esc_attr($faq_product_question_id); ?>"> 174 <input type="hidden" name="aicont_plugin_faq_product_answer_id" value="<?php echo esc_attr($faq_product_answer_id); ?>"> 175 <?php endif; ?> 188 <input type="hidden" name="aicont_plugin_faq_page_article_id" value="<?php echo esc_attr($page_id); ?>"> 189 <input type="hidden" name="aicont_plugin_faq_page_question_id" value="<?php echo esc_attr($page_question_id); ?>"> 190 <input type="hidden" name="aicont_plugin_faq_page_answer_id" value="<?php echo esc_attr($page_answer_id); ?>"> 191 <input type="hidden" name="aicont_plugin_faq_product_article_id" value="<?php echo esc_attr($faq_product_article_id); ?>"> 192 <input type="hidden" name="aicont_plugin_faq_product_question_id" value="<?php echo esc_attr($faq_product_question_id); ?>"> 193 <input type="hidden" name="aicont_plugin_faq_product_answer_id" value="<?php echo esc_attr($faq_product_answer_id); ?>"> 176 194 <?php endif; ?> 177 195 178 <!-- ✅ PRESERVE: prompts settings-->196 <!-- ✅ PRESERVE: Other prompts and settings --> 179 197 <input type="hidden" name="aicont_plugin_template_type" value="<?php echo esc_attr($template_type); ?>"> 180 198 <input type="hidden" name="aicont_plugin_site_language" value="<?php echo esc_attr($site_language); ?>"> 181 199 <input type="hidden" name="aicont_plugin_site_title" value="<?php echo esc_attr($site_title); ?>"> 182 200 <input type="hidden" name="aicont_plugin_content_prompt_custom" value="<?php echo esc_attr($content_prompt_custom); ?>"> 201 <input type="hidden" name="aicont_plugin_content_page_prompt_custom" value="<?php echo esc_attr($content_page_prompt_custom); ?>"> 202 <input type="hidden" name="aicont_plugin_content_product_prompt_custom" value="<?php echo esc_attr($content_product_prompt_custom); ?>"> 203 <input type="hidden" name="aicont_plugin_short_description_prompt_custom" value="<?php echo esc_attr($short_description_prompt_custom); ?>"> 183 204 <input type="hidden" name="aicont_plugin_seo_title_prompt_custom" value="<?php echo esc_attr($seo_title_prompt_custom); ?>"> 205 <input type="hidden" name="aicont_plugin_seo_page_title_prompt_custom" value="<?php echo esc_attr($seo_page_title_prompt_custom); ?>"> 206 <input type="hidden" name="aicont_plugin_seo_product_title_prompt_custom" value="<?php echo esc_attr($seo_product_title_prompt_custom); ?>"> 184 207 <input type="hidden" name="aicont_plugin_seo_meta_prompt_custom" value="<?php echo esc_attr($seo_meta_prompt_custom); ?>"> 185 <?php if ($is_pro_active): ?> 186 <input type="hidden" name="aicont_plugin_content_product_prompt_custom" value="<?php echo esc_attr($content_product_prompt_custom); ?>"> 187 <input type="hidden" name="aicont_plugin_short_description_prompt_custom" value="<?php echo esc_attr($short_description_prompt_custom); ?>"> 188 <input type="hidden" name="aicont_plugin_seo_title_product_prompt_custom" value="<?php echo esc_attr($seo_title_product_prompt_custom); ?>"> 189 <input type="hidden" name="aicont_plugin_seo_meta_product_prompt_custom" value="<?php echo esc_attr($seo_meta_product_prompt_custom); ?>"> 190 <?php endif; ?> 191 <?php endif; ?> 192 193 <!-- ✅ SEO TITLE TAB: SEO Title prompts --> 208 <input type="hidden" name="aicont_plugin_seo_meta_page_prompt_custom" value="<?php echo esc_attr($seo_meta_page_prompt_custom); ?>"> 209 <input type="hidden" name="aicont_plugin_seo_meta_product_prompt_custom" value="<?php echo esc_attr($seo_meta_product_prompt_custom); ?>"> 210 <?php endif; ?> 211 212 <!-- ✅ SEO TITLE TAB: SEO Title prompts --> 194 213 <?php if ($current_tab === 'seo-title'): ?> 195 214 <input type="hidden" name="aicont_plugin_seo_title_prompt_custom" value="<?php echo esc_attr($seo_title_prompt_custom); ?>"> 196 <?php if ($is_pro_active): ?> 197 <input type="hidden" name="aicont_plugin_seo_title_product_prompt_custom" value="<?php echo esc_attr($seo_title_product_prompt_custom); ?>"> 198 <?php endif; ?> 199 200 <!-- ✅ PRESERVE: prompts settings --> 215 <input type="hidden" name="aicont_plugin_seo_page_title_prompt_custom" value="<?php echo esc_attr($seo_page_title_prompt_custom); ?>"> 216 <input type="hidden" name="aicont_plugin_seo_product_title_prompt_custom" value="<?php echo esc_attr($seo_product_title_prompt_custom); ?>"> 217 218 <!-- ✅ PRESERVE: Other prompts and settings --> 201 219 <input type="hidden" name="aicont_plugin_template_type" value="<?php echo esc_attr($template_type); ?>"> 202 220 <input type="hidden" name="aicont_plugin_site_language" value="<?php echo esc_attr($site_language); ?>"> 203 221 <input type="hidden" name="aicont_plugin_site_title" value="<?php echo esc_attr($site_title); ?>"> 204 222 <input type="hidden" name="aicont_plugin_content_prompt_custom" value="<?php echo esc_attr($content_prompt_custom); ?>"> 223 <input type="hidden" name="aicont_plugin_content_page_prompt_custom" value="<?php echo esc_attr($content_page_prompt_custom); ?>"> 224 <input type="hidden" name="aicont_plugin_content_product_prompt_custom" value="<?php echo esc_attr($content_product_prompt_custom); ?>"> 225 <input type="hidden" name="aicont_plugin_short_description_prompt_custom" value="<?php echo esc_attr($short_description_prompt_custom); ?>"> 205 226 <input type="hidden" name="aicont_plugin_faq_prompt_custom" value="<?php echo esc_attr($faq_prompt_custom); ?>"> 227 <input type="hidden" name="aicont_plugin_faq_page_prompt_custom" value="<?php echo esc_attr($faq_page_prompt_custom); ?>"> 228 <input type="hidden" name="aicont_plugin_faq_product_prompt_custom" value="<?php echo esc_attr($faq_product_prompt_custom); ?>"> 206 229 <input type="hidden" name="aicont_plugin_seo_meta_prompt_custom" value="<?php echo esc_attr($seo_meta_prompt_custom); ?>"> 207 <?php if ($is_pro_active): ?> 208 <input type="hidden" name="aicont_plugin_content_product_prompt_custom" value="<?php echo esc_attr($content_product_prompt_custom); ?>"> 209 <input type="hidden" name="aicont_plugin_short_description_prompt_custom" value="<?php echo esc_attr($short_description_prompt_custom); ?>"> 210 <input type="hidden" name="aicont_plugin_faq_product_prompt_custom" value="<?php echo esc_attr($faq_product_prompt_custom); ?>"> 211 <input type="hidden" name="aicont_plugin_seo_meta_product_prompt_custom" value="<?php echo esc_attr($seo_meta_product_prompt_custom); ?>"> 212 <?php endif; ?> 213 214 <!-- ✅ PRESERVE: ACF fields --> 230 <input type="hidden" name="aicont_plugin_seo_meta_page_prompt_custom" value="<?php echo esc_attr($seo_meta_page_prompt_custom); ?>"> 231 <input type="hidden" name="aicont_plugin_seo_meta_product_prompt_custom" value="<?php echo esc_attr($seo_meta_product_prompt_custom); ?>"> 232 233 <!-- ✅ PRESERVE: ACF fields --> 215 234 <?php if ($template_type === 'custom'): ?> 216 235 <input type="hidden" name="aicont_plugin_faq_article_id" value="<?php echo esc_attr($article_id); ?>"> 217 236 <input type="hidden" name="aicont_plugin_faq_question_id" value="<?php echo esc_attr($question_id); ?>"> 218 237 <input type="hidden" name="aicont_plugin_faq_answer_id" value="<?php echo esc_attr($answer_id); ?>"> 219 <?php if ($is_pro_active): ?> 220 <input type="hidden" name="aicont_plugin_faq_product_article_id" value="<?php echo esc_attr($faq_product_article_id); ?>"> 221 <input type="hidden" name="aicont_plugin_faq_product_question_id" value="<?php echo esc_attr($faq_product_question_id); ?>"> 222 <input type="hidden" name="aicont_plugin_faq_product_answer_id" value="<?php echo esc_attr($faq_product_answer_id); ?>"> 223 <?php endif; ?> 238 <input type="hidden" name="aicont_plugin_faq_page_article_id" value="<?php echo esc_attr($page_id); ?>"> 239 <input type="hidden" name="aicont_plugin_faq_page_question_id" value="<?php echo esc_attr($page_question_id); ?>"> 240 <input type="hidden" name="aicont_plugin_faq_page_answer_id" value="<?php echo esc_attr($page_answer_id); ?>"> 241 <input type="hidden" name="aicont_plugin_faq_product_article_id" value="<?php echo esc_attr($faq_product_article_id); ?>"> 242 <input type="hidden" name="aicont_plugin_faq_product_question_id" value="<?php echo esc_attr($faq_product_question_id); ?>"> 243 <input type="hidden" name="aicont_plugin_faq_product_answer_id" value="<?php echo esc_attr($faq_product_answer_id); ?>"> 224 244 <?php endif; ?> 225 245 <?php endif; ?> 226 246 227 <!-- ✅ SEO META TAB: SEO Meta prompts -->247 <!-- ✅ SEO META TAB: SEO Meta prompts --> 228 248 <?php if ($current_tab === 'seo-meta'): ?> 229 249 <input type="hidden" name="aicont_plugin_seo_meta_prompt_custom" value="<?php echo esc_attr($seo_meta_prompt_custom); ?>"> 230 <?php if ($is_pro_active): ?> 231 <input type="hidden" name="aicont_plugin_seo_meta_product_prompt_custom" value="<?php echo esc_attr($seo_meta_product_prompt_custom); ?>"> 232 <?php endif; ?> 233 234 <!-- ✅ PRESERVE: prompts settings --> 250 <input type="hidden" name="aicont_plugin_seo_meta_page_prompt_custom" value="<?php echo esc_attr($seo_meta_page_prompt_custom); ?>"> 251 <input type="hidden" name="aicont_plugin_seo_meta_product_prompt_custom" value="<?php echo esc_attr($seo_meta_product_prompt_custom); ?>"> 252 253 <!-- ✅ PRESERVE: Other prompts and settings --> 235 254 <input type="hidden" name="aicont_plugin_template_type" value="<?php echo esc_attr($template_type); ?>"> 236 255 <input type="hidden" name="aicont_plugin_site_language" value="<?php echo esc_attr($site_language); ?>"> 237 256 <input type="hidden" name="aicont_plugin_site_title" value="<?php echo esc_attr($site_title); ?>"> 238 257 <input type="hidden" name="aicont_plugin_content_prompt_custom" value="<?php echo esc_attr($content_prompt_custom); ?>"> 258 <input type="hidden" name="aicont_plugin_content_page_prompt_custom" value="<?php echo esc_attr($content_page_prompt_custom); ?>"> 259 <input type="hidden" name="aicont_plugin_content_product_prompt_custom" value="<?php echo esc_attr($content_product_prompt_custom); ?>"> 260 <input type="hidden" name="aicont_plugin_short_description_prompt_custom" value="<?php echo esc_attr($short_description_prompt_custom); ?>"> 239 261 <input type="hidden" name="aicont_plugin_faq_prompt_custom" value="<?php echo esc_attr($faq_prompt_custom); ?>"> 262 <input type="hidden" name="aicont_plugin_faq_page_prompt_custom" value="<?php echo esc_attr($faq_page_prompt_custom); ?>"> 263 <input type="hidden" name="aicont_plugin_faq_product_prompt_custom" value="<?php echo esc_attr($faq_product_prompt_custom); ?>"> 240 264 <input type="hidden" name="aicont_plugin_seo_title_prompt_custom" value="<?php echo esc_attr($seo_title_prompt_custom); ?>"> 241 <?php if ($is_pro_active): ?> 242 <input type="hidden" name="aicont_plugin_content_product_prompt_custom" value="<?php echo esc_attr($content_product_prompt_custom); ?>"> 243 <input type="hidden" name="aicont_plugin_short_description_prompt_custom" value="<?php echo esc_attr($short_description_prompt_custom); ?>"> 244 <input type="hidden" name="aicont_plugin_faq_product_prompt_custom" value="<?php echo esc_attr($faq_product_prompt_custom); ?>"> 245 <input type="hidden" name="aicont_plugin_seo_title_product_prompt_custom" value="<?php echo esc_attr($seo_title_product_prompt_custom); ?>"> 246 <?php endif; ?> 247 248 <!-- ✅ PRESERVE: ACF fields --> 265 <input type="hidden" name="aicont_plugin_seo_page_title_prompt_custom" value="<?php echo esc_attr($seo_page_title_prompt_custom); ?>"> 266 <input type="hidden" name="aicont_plugin_seo_product_title_prompt_custom" value="<?php echo esc_attr($seo_product_title_prompt_custom); ?>"> 267 268 <!-- ✅ PRESERVE: ACF fields --> 249 269 <?php if ($template_type === 'custom'): ?> 250 270 <input type="hidden" name="aicont_plugin_faq_article_id" value="<?php echo esc_attr($article_id); ?>"> 251 271 <input type="hidden" name="aicont_plugin_faq_question_id" value="<?php echo esc_attr($question_id); ?>"> 252 272 <input type="hidden" name="aicont_plugin_faq_answer_id" value="<?php echo esc_attr($answer_id); ?>"> 253 <?php if ($is_pro_active): ?> 254 <input type="hidden" name="aicont_plugin_faq_product_article_id" value="<?php echo esc_attr($faq_product_article_id); ?>"> 255 <input type="hidden" name="aicont_plugin_faq_product_question_id" value="<?php echo esc_attr($faq_product_question_id); ?>"> 256 <input type="hidden" name="aicont_plugin_faq_product_answer_id" value="<?php echo esc_attr($faq_product_answer_id); ?>"> 257 <?php endif; ?> 273 <input type="hidden" name="aicont_plugin_faq_page_article_id" value="<?php echo esc_attr($page_id); ?>"> 274 <input type="hidden" name="aicont_plugin_faq_page_question_id" value="<?php echo esc_attr($page_question_id); ?>"> 275 <input type="hidden" name="aicont_plugin_faq_page_answer_id" value="<?php echo esc_attr($page_answer_id); ?>"> 276 <input type="hidden" name="aicont_plugin_faq_product_article_id" value="<?php echo esc_attr($faq_product_article_id); ?>"> 277 <input type="hidden" name="aicont_plugin_faq_product_question_id" value="<?php echo esc_attr($faq_product_question_id); ?>"> 278 <input type="hidden" name="aicont_plugin_faq_product_answer_id" value="<?php echo esc_attr($faq_product_answer_id); ?>"> 258 279 <?php endif; ?> 259 280 <?php endif; ?> … … 341 362 $prompt_fields = [ 342 363 'content_prompt_custom', 364 'content_page_prompt_custom', 343 365 'content_product_prompt_custom', 344 366 'short_description_prompt_custom', 345 367 'faq_prompt_custom', 368 'faq_page_prompt_custom', 346 369 'faq_product_prompt_custom', 347 370 'seo_title_prompt_custom', 348 'seo_title_product_prompt_custom', 371 'seo_page_title_prompt_custom', 372 'seo_product_title_prompt_custom', 349 373 'seo_meta_prompt_custom', 374 'seo_meta_page_prompt_custom', 350 375 'seo_meta_product_prompt_custom' 351 376 ]; … … 366 391 // ACF fields 367 392 $acf_fields = [ 368 'faq_article_id', 'faq_question_id', 'faq_answer_id', 369 'faq_product_article_id', 'faq_product_question_id', 'faq_product_answer_id' 393 'faq_article_id', 394 'faq_question_id', 395 'faq_answer_id', 396 'faq_page_article_id', 397 'faq_page_question_id', 398 'faq_page_answer_id', 399 'faq_product_article_id', 400 'faq_product_question_id', 401 'faq_product_answer_id' 370 402 ]; 371 403 foreach ($acf_fields as $field) { -
aicontify/trunk/settings/tab-content.php
r3396224 r3428884 53 53 <?php esc_html_e('Leave empty to use default.', 'aicontify'); ?><br> 54 54 <?php printf( 55 /* translators: %s: {keyword} placeholder */55 /* translators: %s: {keyword} placeholder */ 56 56 esc_html__('If filled, must include %s.', 'aicontify'), 57 57 '<code>' . esc_html('{keyword}') . '</code>' … … 64 64 <?php 65 65 if ($is_pro_active): ?> 66 67 <h3><?php esc_html_e('Page Settings', 'aicontify'); ?></h3> 68 <table class="form-table"> 69 <tr> 70 <th scope="row"> 71 <label for="aicont_plugin_content_page_prompt_custom"> 72 <?php esc_html_e('Custom Prompt (Optional)', 'aicontify'); ?> 73 </label> 74 </th> 75 <td> 76 <textarea 77 id="aicont_plugin_content_page_prompt_custom" 78 name="aicont_plugin_content_page_prompt_custom" 79 rows="5" 80 class="widefat" 81 ><?php echo esc_textarea(get_option('aicont_plugin_content_page_prompt_custom', '')); ?></textarea> 82 <p class="description"> 83 <?php esc_html_e('Leave empty to use default.', 'aicontify'); ?><br> 84 <?php printf( 85 /* translators: %s: {keyword} placeholder */ 86 esc_html__('If filled, must include %s.', 'aicontify'), 87 '<code>' . esc_html('{keyword}') . '</code>' 88 ); ?> 89 </p> 90 </td> 91 </tr> 92 </table> 93 66 94 <h3><?php esc_html_e('Product Settings', 'aicontify'); ?></h3> 67 95 <table class="form-table"> … … 82 110 <?php esc_html_e('Leave empty to use default.', 'aicontify'); ?><br> 83 111 <?php printf( 84 /* translators: %s: {keyword} placeholder */112 /* translators: %s: {keyword} placeholder */ 85 113 esc_html__('If filled, must include %s.', 'aicontify'), 86 114 '<code>' . esc_html('{keyword}') . '</code>' … … 91 119 </table> 92 120 93 <h3><?php esc_html_e('Short Description ', 'aicontify'); ?></h3>121 <h3><?php esc_html_e('Short Description product', 'aicontify'); ?></h3> 94 122 <table class="form-table"> 95 123 <tr> … … 109 137 <?php esc_html_e('Leave empty to use default.', 'aicontify'); ?><br> 110 138 <?php printf( 111 /* translators: %s: {keyword} placeholder */139 /* translators: %s: {keyword} placeholder */ 112 140 esc_html__('If filled, must include %s. Max 300 chars.', 'aicontify'), 113 141 '<code>' . esc_html('{keyword}') . '</code>' -
aicontify/trunk/settings/tab-faq.php
r3396224 r3428884 53 53 <?php esc_html_e('Leave empty to use default.', 'aicontify'); ?><br> 54 54 <?php printf( 55 /* translators: %s: {keyword} placeholder */55 /* translators: %s: {keyword} placeholder */ 56 56 esc_html__('If filled, must include %s.', 'aicontify'), 57 57 '<code>' . esc_html('{keyword}') . '</code>' … … 118 118 119 119 <?php if ($is_pro_active): ?> 120 121 <h3><?php esc_html_e('Page Settings', 'aicontify'); ?></h3> 122 <table class="form-table"> 123 <tr> 124 <th scope="row"> 125 <label for="aicont_plugin_faq_page_prompt_custom"> 126 <?php esc_html_e('Custom Prompt (Optional)', 'aicontify'); ?> 127 </label> 128 </th> 129 <td> 130 <textarea 131 id="aicont_plugin_faq_page_prompt_custom" 132 name="aicont_plugin_faq_page_prompt_custom" 133 rows="5" 134 class="widefat" 135 ><?php echo esc_textarea(get_option('aicont_plugin_faq_page_prompt_custom', '')); ?></textarea> 136 <p class="description"> 137 <?php esc_html_e('Leave empty to use default.', 'aicontify'); ?><br> 138 <?php printf( 139 /* translators: %s: {keyword} placeholder */ 140 esc_html__('If filled, must include %s.', 'aicontify'), 141 '<code>' . esc_html('{keyword}') . '</code>' 142 ); ?> 143 </p> 144 </td> 145 </tr> 146 147 <tr class="custom-template-fields" style="display: <?php echo $show_custom ? 'table-row' : 'none'; ?>;"> 148 <th scope="row"> 149 <label for="aicont_plugin_faq_page_article_id"> 150 <?php esc_html_e('Page ID', 'aicontify'); ?> 151 </label> 152 </th> 153 <td> 154 <input 155 type="text" 156 id="aicont_plugin_faq_page_article_id" 157 name="aicont_plugin_faq_page_article_id" 158 value="<?php echo esc_attr(get_option('aicont_plugin_faq_page_article_id', '')); ?>" 159 class="regular-text" 160 /> 161 <p class="description"><?php esc_html_e('ACF repeater field ID for page.', 'aicontify'); ?></p> 162 </td> 163 </tr> 164 <tr class="custom-template-fields" style="display: <?php echo $show_custom ? 'table-row' : 'none'; ?>;"> 165 <th scope="row"> 166 <label for="aicont_plugin_faq_page_question_id"> 167 <?php esc_html_e('Page Question ID', 'aicontify'); ?> 168 </label> 169 </th> 170 <td> 171 <input 172 type="text" 173 id="aicont_plugin_faq_page_question_id" 174 name="aicont_plugin_faq_page_question_id" 175 value="<?php echo esc_attr(get_option('aicont_plugin_faq_page_question_id', '')); ?>" 176 class="regular-text" 177 /> 178 <p class="description"><?php esc_html_e('ACF field ID for page question.', 'aicontify'); ?></p> 179 </td> 180 </tr> 181 <tr class="custom-template-fields" style="display: <?php echo $show_custom ? 'table-row' : 'none'; ?>;"> 182 <th scope="row"> 183 <label for="aicont_plugin_faq_page_answer_id"> 184 <?php esc_html_e('Page Answer ID', 'aicontify'); ?> 185 </label> 186 </th> 187 <td> 188 <input 189 type="text" 190 id="aicont_plugin_faq_page_answer_id" 191 name="aicont_plugin_faq_page_answer_id" 192 value="<?php echo esc_attr(get_option('aicont_plugin_faq_page_answer_id', '')); ?>" 193 class="regular-text" 194 /> 195 <p class="description"><?php esc_html_e('ACF field ID for page answer.', 'aicontify'); ?></p> 196 </td> 197 </tr> 198 </table> 199 120 200 <h3><?php esc_html_e('Product Settings', 'aicontify'); ?></h3> 121 201 <table class="form-table"> … … 136 216 <?php esc_html_e('Leave empty to use default.', 'aicontify'); ?><br> 137 217 <?php printf( 138 /* translators: %s: {keyword} placeholder */218 /* translators: %s: {keyword} placeholder */ 139 219 esc_html__('If filled, must include %s.', 'aicontify'), 140 220 '<code>' . esc_html('{keyword}') . '</code>' … … 147 227 <th scope="row"> 148 228 <label for="aicont_plugin_faq_product_article_id"> 149 <?php esc_html_e('Product ArticleID', 'aicontify'); ?>229 <?php esc_html_e('Product ID', 'aicontify'); ?> 150 230 </label> 151 231 </th> -
aicontify/trunk/settings/tab-seo-meta.php
r3396224 r3428884 65 65 66 66 <?php if ($is_pro_active): ?> 67 68 <h3><?php esc_html_e('Page Settings', 'aicontify'); ?></h3> 69 <table class="form-table"> 70 <tr> 71 <th scope="row"> 72 <label for="aicont_plugin_seo_meta_page_prompt_custom"> 73 <?php esc_html_e('Custom Prompt (Optional)', 'aicontify'); ?> 74 </label> 75 </th> 76 <td> 77 <textarea 78 id="aicont_plugin_seo_meta_page_prompt_custom" 79 name="aicont_plugin_seo_meta_page_prompt_custom" 80 rows="5" 81 class="widefat" 82 ><?php echo esc_textarea(get_option('aicont_plugin_seo_meta_page_prompt_custom', '')); ?></textarea> 83 <p class="description"> 84 <?php esc_html_e('Leave empty to use default.', 'aicontify'); ?><br> 85 <?php 86 printf( 87 /* translators: %s: {keyword} placeholder */ 88 esc_html__('If filled, must include %s.', 'aicontify'), 89 '<code>' . esc_html('{keyword}') . '</code>' 90 ); 91 ?> 92 </p> 93 </td> 94 </tr> 95 </table> 96 67 97 <h3><?php esc_html_e('Product Settings', 'aicontify'); ?></h3> 68 98 <table class="form-table"> -
aicontify/trunk/settings/tab-seo-title.php
r3396224 r3428884 53 53 <?php esc_html_e('Leave empty to use default.', 'aicontify'); ?><br> 54 54 <?php printf( 55 /* translators: %s: {keyword} placeholder */55 /* translators: %s: {keyword} placeholder */ 56 56 esc_html__('If filled, must include %s.', 'aicontify'), 57 57 '<code>' . esc_html('{keyword}') . '</code>' … … 63 63 64 64 <?php if ($is_pro_active): ?> 65 66 <h3><?php esc_html_e('Page Settings', 'aicontify'); ?></h3> 67 <table class="form-table"> 68 <tr> 69 <th scope="row"> 70 <label for="aicont_plugin_seo_page_title_prompt_custom"> 71 <?php esc_html_e('Custom Prompt (Optional)', 'aicontify'); ?> 72 </label> 73 </th> 74 <td> 75 <textarea 76 id="aicont_plugin_seo_page_title_prompt_custom" 77 name="aicont_plugin_seo_page_title_prompt_custom" 78 rows="5" 79 class="widefat" 80 ><?php echo esc_textarea(get_option('aicont_plugin_seo_page_title_prompt_custom', '')); ?></textarea> 81 <p class="description"> 82 <?php esc_html_e('Leave empty to use default.', 'aicontify'); ?><br> 83 <?php printf( 84 /* translators: %s: {keyword} placeholder */ 85 esc_html__('If filled, must include %s.', 'aicontify'), 86 '<code>' . esc_html('{keyword}') . '</code>' 87 ); ?> 88 </p> 89 </td> 90 </tr> 91 </table> 92 65 93 <h3><?php esc_html_e('Product Settings', 'aicontify'); ?></h3> 66 94 <table class="form-table"> … … 71 99 </label> 72 100 </th> 73 <td> 101 <td> 74 102 <textarea 75 103 id="aicont_plugin_seo_title_product_prompt_custom" … … 81 109 <?php esc_html_e('Leave empty to use default.', 'aicontify'); ?><br> 82 110 <?php printf( 83 /* translators: %s: {keyword} placeholder */111 /* translators: %s: {keyword} placeholder */ 84 112 esc_html__('If filled, must include %s.', 'aicontify'), 85 113 '<code>' . esc_html('{keyword}') . '</code>' -
aicontify/trunk/tabsPosts.php
r3402369 r3428884 48 48 <!-- Tabs Navigation --> 49 49 <h2 class="nav-tab-wrapper aicont-tabs"> 50 <a href="#tab-main-content" data-tab="main-content" class="nav-tab nav-tab-active"> 50 <a href="#tab-title-suggestion" data-tab="title-suggestion" class="nav-tab nav-tab-active"> 51 <?php esc_html_e('Title Suggestion Generation', 'aicontify'); ?> 52 </a> 53 <a href="#tab-main-content" data-tab="main-content" class="nav-tab"> 51 54 <?php esc_html_e('Main Content Generation', 'aicontify'); ?> 52 55 </a> … … 66 69 67 70 <div class="aicont-tabs-content"> 71 <!-- Title Suggestion --> 72 <div id="tab-title-suggestion" class="tab-content aicont-tab-panel active" style="display: block;"> 73 <div class="aicont-main-guide"> 74 <h4><?php esc_html_e( 'How to Generate Title Suggestions with One Click', 'aicontify' ); ?></h4> 75 76 <ul class="aicont-steps"> 77 <li><strong>1.</strong> 78 <?php esc_html_e( 'Enter the post title at the top of the page.', 'aicontify' ); ?> 79 </li> 80 <li><strong>2.</strong> 81 <?php esc_html_e( 'Fill in the "Keyword / Topic" field with your main keyword or topic.', 'aicontify' ); ?> 82 </li> 83 <li><strong>3.</strong> 84 <?php esc_html_e( 'Click "Save Draft" to save your changes.', 'aicontify' ); ?> 85 </li> 86 <li><strong>4.</strong> 87 <?php esc_html_e( 'Finally, click the blue button "Generate Title Suggestions".', 'aicontify' ); ?> 88 </li> 89 </ul> 90 91 <p class="aicont-tip"> 92 <?php esc_html_e( 'You will receive several title suggestions - choose the best one and update your post title!', 'aicontify' ); ?> 93 </p> 94 </div> 95 96 <button type="button" class="button button-primary button-hero aicont-btn" id="aicont-generate-title-suggestion-btn" data-postid="<?php echo esc_attr($post->ID); ?>"> 97 <?php esc_html_e('Generate Title Suggestions', 'aicontify'); ?> 98 </button> 99 100 <div id="aicont-title-suggestion-loading-box" class="aicont-loading" style="display: none;"> 101 <p class="notice notice-warning aicont-notice"> 102 <?php esc_html_e('Please do not refresh the page until the operation is complete.', 'aicontify'); ?> 103 </p> 104 <div class="aicont-loader"> 105 <span></span><span></span><span></span> 106 </div> 107 </div> 108 109 <div id="aicont-title-suggestion-result" class="aicont-result"></div> 110 </div> 111 68 112 <!-- Main Content --> 69 <div id="tab-main-content" class="tab-content aicont-tab-panel active" style="display: block;">113 <div id="tab-main-content" class="tab-content aicont-tab-panel" style="display: none;"> 70 114 <div class="aicont-main-guide"> 71 115 <h4><?php esc_html_e( 'How to Generate Main Post Content with One Click?', 'aicontify' ); ?></h4> … … 292 336 <div id="tab-seo-title" class="tab-content aicont-tab-panel" style="display: none;"> 293 337 <?php 294 // --- Yoast Detection --- 338 // --- Yoast & Rank Math Detection --- 339 $yoast_active = false; 340 $rankmath_active = false; 341 342 if (!function_exists('is_plugin_active')) { 343 include_once ABSPATH . 'wp-admin/includes/plugin.php'; 344 } 345 346 if (is_plugin_active('wordpress-seo/wp-seo.php') || is_plugin_active('wordpress-seo-premium/wp-seo-premium.php')) { 347 $yoast_active = true; 348 } elseif (class_exists('WPSEO_Options') || class_exists('WPSEO_Admin') || defined('WPSEO_VERSION')) { 349 $yoast_active = true; 350 } 351 352 if (is_plugin_active('seo-by-rank-math/rank-math.php')) { 353 $rankmath_active = true; 354 } elseif (class_exists('RankMath\Core') || defined('RANK_MATH_VERSION')) { 355 $rankmath_active = true; 356 } 357 358 if ($yoast_active || $rankmath_active): 359 ?> 360 <div class="aicont-main-guide"> 361 <h4><?php esc_html_e( 'How to Generate SEO Title & Meta Description with One Click', 'aicontify' ); ?></h4> 362 363 <ul class="aicont-steps"> 364 <li><strong>1.</strong> 365 <?php esc_html_e( 'Enter the post title at the top of the page.', 'aicontify' ); ?> 366 </li> 367 <li><strong>2.</strong> 368 <?php esc_html_e( 'Fill in the "Keyword / Topic" field with your main focus keyword.', 'aicontify' ); ?> 369 </li> 370 <li><strong>3.</strong> 371 <?php esc_html_e( 'Click "Save Draft" to save the post.', 'aicontify' ); ?> 372 </li> 373 <li><strong>4.</strong> 374 <?php esc_html_e( 'Click the blue button "Generate SEO Title & Meta".', 'aicontify' ); ?> 375 </li> 376 </ul> 377 378 <p class="aicont-tip"> 379 <?php esc_html_e( 'After completion, the full SEO-optimized content will automatically appear in the editor — you can edit it or publish directly!', 'aicontify' ); ?> 380 </p> 381 382 <?php if ($yoast_active && $rankmath_active): ?> 383 <p class="aicont-plugin-info" style="background-color: #e7f3ff; border-left: 4px solid #0073aa; padding: 10px; margin-top: 15px; border-radius: 3px;"> 384 <strong><?php esc_html_e('Both plugins detected!', 'aicontify'); ?></strong><br> 385 <?php esc_html_e('Priority: Yoast SEO will be used. If Yoast is disabled, Rank Math will be used.', 'aicontify'); ?> 386 </p> 387 <?php elseif ($rankmath_active): ?> 388 <p class="aicont-plugin-info" style="background-color: #fff8e5; border-left: 4px solid #ffb81c; padding: 10px; margin-top: 15px; border-radius: 3px;"> 389 <strong><?php esc_html_e('Rank Math SEO detected!', 'aicontify'); ?></strong><br> 390 <?php esc_html_e('Your SEO titles will be saved in Rank Math.', 'aicontify'); ?> 391 </p> 392 <?php else: ?> 393 <p class="aicont-plugin-info" style="background-color: #fff8e5; border-left: 4px solid #ffb81c; padding: 10px; margin-top: 15px; border-radius: 3px;"> 394 <strong><?php esc_html_e('Yoast SEO detected!', 'aicontify'); ?></strong><br> 395 <?php esc_html_e('Your SEO titles will be saved in Yoast.', 'aicontify'); ?> 396 </p> 397 <?php endif; ?> 398 </div> 399 <button type="button" class="button button-primary button-hero aicont-btn" id="aicont-generate-seo-title-btn" data-postid="<?php echo esc_attr($post->ID); ?>"> 400 <?php esc_html_e('Generate SEO Title', 'aicontify'); ?> 401 </button> 402 <div id="aicont-seo-title-result" class="aicont-result"></div> 403 <div id="aicont-seo-title-loading-box" class="aicont-loading"> 404 <p class="notice notice-warning aicont-notice"> 405 <?php esc_html_e('Please do not refresh the page until the operation is complete.', 'aicontify'); ?> 406 </p> 407 <div class="aicont-loader"> 408 <span></span><span></span><span></span> 409 </div> 410 </div> 411 412 <!-- Custom Prompt Section --> 413 <div class="aicont-custom-prompt-section" style="margin-top: 30px; padding-top: 20px; border-top: 1px solid #ddd;"> 414 <h3><?php esc_html_e('Custom Prompt Settings', 'aicontify'); ?></h3> 415 416 <table class="form-table"> 417 <tr> 418 <th scope="row"> 419 <label for="aicont_singlepost_seo_title_prompt_custom"> 420 <?php esc_html_e('Custom Prompt for SEO Title Generation', 'aicontify'); ?> 421 </label> 422 </th> 423 <td> 424 <textarea 425 id="aicont_singlepost_seo_title_prompt_custom" 426 name="aicont_singlepost_seo_title_prompt_custom" 427 rows="6" 428 class="widefat" 429 ><?php echo isset($post->ID) ? esc_textarea(get_post_meta($post->ID, 'aicont_singlepost_seo_title_prompt_custom', true)) : ''; ?></textarea> 430 431 <div class="aicont-main-guide aicont-prompt-help"> 432 <p class="aicont-prompt-info"> 433 <?php esc_html_e( 'You can leave this field empty → the plugin will use the smart default prompt and give you excellent results.', 'aicontify' ); ?> 434 </p> 435 <p class="aicont-prompt-info"> 436 <?php esc_html_e( 'Want even better and more customized results? Write your own instruction here.', 'aicontify' ); ?> 437 </p> 438 <p class="aicont-prompt-footer"> 439 <?php esc_html_e( 'The clearer and more precise your prompt, the better and more accurate the result will be!', 'aicontify' ); ?> 440 </p> 441 </div> 442 </td> 443 </tr> 444 </table> 445 </div> 446 447 <?php else: ?> 448 <!-- No SEO Plugin Active - Error Notice --> 449 <div class="aicont-yoast-error-notice"> 450 <p class="aicont-error-title"> 451 <strong><?php esc_html_e('Warning:', 'aicontify'); ?></strong> <?php esc_html_e('SEO Plugin Required', 'aicontify'); ?> 452 </p> 453 <p class="aicont-error-desc"> 454 <?php esc_html_e('This feature requires either Yoast SEO or Rank Math to be installed and activated.', 'aicontify'); ?> 455 </p> 456 <div class="aicont-error-plugins" style="margin-top: 15px; background-color: #f5f5f5; padding: 15px; border-radius: 4px;"> 457 <p style="margin: 0 0 10px 0;"><strong><?php esc_html_e('Supported SEO Plugins:', 'aicontify'); ?></strong></p> 458 <ul style="margin: 0; padding-left: 20px;"> 459 <li style="margin-bottom: 8px;"> 460 <strong>Yoast SEO</strong> - <?php esc_html_e('Free & Premium versions supported', 'aicontify'); ?> 461 </li> 462 <li style="margin-bottom: 8px;"> 463 <strong>Rank Math</strong> - <?php esc_html_e('Free & Premium versions supported', 'aicontify'); ?> 464 </li> 465 </ul> 466 </div> 467 <p class="aicont-error-tip" style="margin-top: 15px;"> 468 <span class="dashicons dashicons-yes" style="color: #28a745;"></span> 469 <?php esc_html_e('Install and activate one of the above plugins, then refresh this page.', 'aicontify'); ?> 470 </p> 471 </div> 472 <?php endif; ?> 473 </div> 474 475 <!-- Meta Description --> 476 <div id="tab-seo-description" class="tab-content aicont-tab-panel" style="display: none;"> 477 <?php 478 // --- Yoast & Rank Math Detection --- 295 479 $yoast_active = false; 480 $rankmath_active = false; 296 481 297 482 if (!function_exists('is_plugin_active')) { … … 305 490 } 306 491 307 if ($yoast_active): 308 ?> 309 <div class="aicont-main-guide"> 310 <h4><?php esc_html_e( 'How to Generate SEO Title & Meta Description with One Click', 'aicontify' ); ?></h4> 311 312 <ul class="aicont-steps"> 313 <li><strong>1.</strong> 314 <?php esc_html_e( 'Enter the post title at the top of the page.', 'aicontify' ); ?> 315 </li> 316 <li><strong>2.</strong> 317 <?php esc_html_e( 'Fill in the "Keyword / Topic" field with your main focus keyword.', 'aicontify' ); ?> 318 </li> 319 <li><strong>3.</strong> 320 <?php esc_html_e( 'Click "Save Draft" to save the post.', 'aicontify' ); ?> 321 </li> 322 <li><strong>4.</strong> 323 <?php esc_html_e( 'Click the blue button "Generate SEO Title & Meta".', 'aicontify' ); ?> 324 </li> 325 </ul> 326 327 <p class="aicont-tip"> 328 <?php esc_html_e( 'After completion, the full SEO-optimized content will automatically appear in the editor — you can edit it or publish directly!', 'aicontify' ); ?> 329 </p> 330 </div> 331 <button type="button" class="button button-primary button-hero aicont-btn" id="aicont-generate-seo-title-btn" data-postid="<?php echo esc_attr($post->ID); ?>"> 332 <?php esc_html_e('Generate SEO Title', 'aicontify'); ?> 333 </button> 334 <div id="aicont-seo-title-result" class="aicont-result"></div> 335 <div id="aicont-seo-title-loading-box" class="aicont-loading"> 336 <p class="notice notice-warning aicont-notice"> 337 <?php esc_html_e('Please do not refresh the page until the operation is complete.', 'aicontify'); ?> 338 </p> 339 <div class="aicont-loader"> 340 <span></span><span></span><span></span> 341 </div> 342 </div> 343 344 <!-- Custom Prompt Section --> 345 <div class="aicont-custom-prompt-section" style="margin-top: 30px; padding-top: 20px; border-top: 1px solid #ddd;"> 346 <h3><?php esc_html_e('Custom Prompt Settings', 'aicontify'); ?></h3> 347 348 <table class="form-table"> 349 <tr> 350 <th scope="row"> 351 <label for="aicont_singlepost_seo_title_prompt_custom"> 352 <?php esc_html_e('Custom Prompt for SEO Title Generation', 'aicontify'); ?> 353 </label> 354 </th> 355 <td> 356 <textarea 357 id="aicont_singlepost_seo_title_prompt_custom" 358 name="aicont_singlepost_seo_title_prompt_custom" 359 rows="6" 360 class="widefat" 361 ><?php echo isset($post->ID) ? esc_textarea(get_post_meta($post->ID, 'aicont_singlepost_seo_title_prompt_custom', true)) : ''; ?></textarea> 362 363 <div class="aicont-main-guide aicont-prompt-help"> 364 <p class="aicont-prompt-info"> 365 <?php esc_html_e( 'You can leave this field empty → the plugin will use the smart default prompt and give you excellent results.', 'aicontify' ); ?> 366 </p> 367 <p class="aicont-prompt-info"> 368 <?php esc_html_e( 'Want even better and more customized results? Write your own instruction here.', 'aicontify' ); ?> 369 </p> 370 <p class="aicont-prompt-footer"> 371 <?php esc_html_e( 'The clearer and more precise your prompt, the better and more accurate the result will be!', 'aicontify' ); ?> 372 </p> 373 </div> 374 </td> 375 </tr> 376 </table> 377 </div> 378 379 <?php else: ?> 380 <!-- Yoast Not Active - English Error --> 381 <div class="aicont-yoast-error-notice"> 382 <p class="aicont-error-title"> 383 <strong>Warning:</strong> <?php esc_html_e('Yoast SEO Plugin Required', 'aicontify'); ?> 384 </p> 385 <p class="aicont-error-desc"> 386 <?php esc_html_e('This feature requires the Yoast SEO plugin to be installed and activated.', 'aicontify'); ?> 387 </p> 388 <p class="aicont-error-tip"> 389 <span class="dashicons dashicons-yes"></span> <?php esc_html_e('After activation, refresh the page.', 'aicontify'); ?> 390 </p> 391 </div> 392 <?php endif; ?> 393 </div> 394 395 <!-- Meta Description --> 396 <div id="tab-seo-description" class="tab-content aicont-tab-panel" style="display: none;"> 397 <?php 398 // --- Yoast Detection (Same as SEO Title) --- 399 $yoast_active = false; 400 401 if (!function_exists('is_plugin_active')) { 402 include_once ABSPATH . 'wp-admin/includes/plugin.php'; 492 if (is_plugin_active('seo-by-rank-math/rank-math.php')) { 493 $rankmath_active = true; 494 } elseif (class_exists('RankMath\Core') || defined('RANK_MATH_VERSION')) { 495 $rankmath_active = true; 403 496 } 404 497 405 if (is_plugin_active('wordpress-seo/wp-seo.php') || is_plugin_active('wordpress-seo-premium/wp-seo-premium.php')) { 406 $yoast_active = true; 407 } elseif (class_exists('WPSEO_Options') || class_exists('WPSEO_Admin') || defined('WPSEO_VERSION')) { 408 $yoast_active = true; 409 } 410 411 if ($yoast_active): 498 if ($yoast_active || $rankmath_active): 412 499 ?> 413 500 <div class="aicont-main-guide"> … … 431 518 <?php esc_html_e( 'After completion, the full SEO-optimized content will automatically appear in the editor — you can edit it or publish directly!', 'aicontify' ); ?> 432 519 </p> 520 521 <?php if ($yoast_active && $rankmath_active): ?> 522 <p class="aicont-plugin-info" style="background-color: #e7f3ff; border-left: 4px solid #0073aa; padding: 10px; margin-top: 15px; border-radius: 3px;"> 523 <strong><?php esc_html_e('Both plugins detected!', 'aicontify'); ?></strong><br> 524 <?php esc_html_e('Priority: Yoast SEO will be used. If Yoast is disabled, Rank Math will be used.', 'aicontify'); ?> 525 </p> 526 <?php elseif ($rankmath_active): ?> 527 <p class="aicont-plugin-info" style="background-color: #fff8e5; border-left: 4px solid #ffb81c; padding: 10px; margin-top: 15px; border-radius: 3px;"> 528 <strong><?php esc_html_e('Rank Math SEO detected!', 'aicontify'); ?></strong><br> 529 <?php esc_html_e('Your meta descriptions will be saved in Rank Math.', 'aicontify'); ?> 530 </p> 531 <?php else: ?> 532 <p class="aicont-plugin-info" style="background-color: #fff8e5; border-left: 4px solid #ffb81c; padding: 10px; margin-top: 15px; border-radius: 3px;"> 533 <strong><?php esc_html_e('Yoast SEO detected!', 'aicontify'); ?></strong><br> 534 <?php esc_html_e('Your meta descriptions will be saved in Yoast.', 'aicontify'); ?> 535 </p> 536 <?php endif; ?> 433 537 </div> 434 538 <button type="button" class="button button-primary button-hero aicont-btn" id="aicont-generate-meta-description-btn" data-postid="<?php echo esc_attr($post->ID); ?>"> … … 481 585 482 586 <?php else: ?> 483 <!-- Yoast Not Active - English Error-->587 <!-- No SEO Plugin Active - Error Notice --> 484 588 <div class="aicont-yoast-error-notice"> 485 589 <p class="aicont-error-title"> 486 <strong> Warning:</strong> <?php esc_html_e('YoastSEO Plugin Required', 'aicontify'); ?>590 <strong><?php esc_html_e('Warning:', 'aicontify'); ?></strong> <?php esc_html_e('SEO Plugin Required', 'aicontify'); ?> 487 591 </p> 488 592 <p class="aicont-error-desc"> 489 <?php esc_html_e('This feature requires the Yoast SEO plugin to be installed and activated.', 'aicontify'); ?> 490 </p> 491 <p class="aicont-error-tip"> 492 <span class="dashicons dashicons-yes"></span> <?php esc_html_e('After activation, refresh the page.', 'aicontify'); ?> 593 <?php esc_html_e('This feature requires either Yoast SEO or Rank Math to be installed and activated.', 'aicontify'); ?> 594 </p> 595 <div class="aicont-error-plugins" style="margin-top: 15px; background-color: #f5f5f5; padding: 15px; border-radius: 4px;"> 596 <p style="margin: 0 0 10px 0;"><strong><?php esc_html_e('Supported SEO Plugins:', 'aicontify'); ?></strong></p> 597 <ul style="margin: 0; padding-left: 20px;"> 598 <li style="margin-bottom: 8px;"> 599 <strong>Yoast SEO</strong> - <?php esc_html_e('Free & Premium versions supported', 'aicontify'); ?> 600 </li> 601 <li style="margin-bottom: 8px;"> 602 <strong>Rank Math</strong> - <?php esc_html_e('Free & Premium versions supported', 'aicontify'); ?> 603 </li> 604 </ul> 605 </div> 606 <p class="aicont-error-tip" style="margin-top: 15px;"> 607 <span class="dashicons dashicons-yes" style="color: #28a745;"></span> 608 <?php esc_html_e('Install and activate one of the above plugins, then refresh this page.', 'aicontify'); ?> 493 609 </p> 494 610 </div> … … 547 663 // Include API handlers 548 664 $api_files = [ 665 'titleSuggestionPosts.php', 549 666 'contentPosts.php', 550 667 'editContentPosts.php',
Note: See TracChangeset
for help on using the changeset viewer.