Changeset 3378463
- Timestamp:
- 10/14/2025 10:09:33 PM (6 months ago)
- Location:
- ultimate-faq-solution/trunk
- Files:
-
- 10 added
- 2 deleted
- 21 edited
-
assets/css/admin-style.css (modified) (1 diff)
-
assets/css/admin-style.min.css (modified) (1 diff)
-
assets/images/logo.png (added)
-
assets/js/admin.js (modified) (1 diff)
-
assets/js/script.js (modified) (2 diffs)
-
assets/js/script.min.js (modified) (1 diff)
-
inc/AppearanceActions.php (modified) (2 diffs)
-
inc/DeactivationFeedback.php (added)
-
inc/admin/RegisterAdminPages.php (added)
-
inc/admin/assets/css/ufs-feedback.css (added)
-
inc/admin/assets/js/ufaqsw-sorting.js (modified) (1 diff)
-
inc/admin/assets/js/ufs-feedback.js (added)
-
inc/admin/assets/js/ultimate-faq-ai-generator.js (added)
-
inc/admin/class-directory-post-type.php (modified) (3 diffs)
-
inc/admin/class-faq-group-sorting.php (modified) (3 diffs)
-
inc/admin/installation.php (modified) (2 diffs)
-
inc/admin/settings/ai-integration.php (modified) (3 diffs)
-
inc/admin/settings/settings.php (deleted)
-
inc/admin/settings/ui.php (deleted)
-
inc/admin/templates (added)
-
inc/admin/templates/get-help.php (added)
-
inc/admin/templates/settings.php (added)
-
inc/ai-writing-assistant/includes/API/ChatGPT.php (modified) (4 diffs)
-
inc/ai-writing-assistant/includes/Admin/AiGenerator.php (added)
-
inc/ai-writing-assistant/includes/Admin/Ajax.php (modified) (1 diff)
-
inc/ai-writing-assistant/includes/Core/Plugin.php (modified) (2 diffs)
-
inc/functions/actions_and_filters.php (modified) (1 diff)
-
inc/languages/ultimate-faq-solution.pot (modified) (15 diffs)
-
init.php (modified) (5 diffs)
-
readme.txt (modified) (4 diffs)
-
vendor/composer/autoload_classmap.php (modified) (1 diff)
-
vendor/composer/autoload_static.php (modified) (1 diff)
-
vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ultimate-faq-solution/trunk/assets/css/admin-style.css
r3315529 r3378463 123 123 margin-top: 8px; 124 124 } 125 /* Admin Settings Page CSS Ends */ 126 127 /* Get Help Page CSS Starts */ 128 .ufs-help-wrap { 129 max-width: 900px; 130 margin: 30px auto; 131 background: #fff; 132 border-radius: 10px; 133 box-shadow: 0 2px 16px rgba(0,0,0,0.07); 134 padding: 32px 36px 36px 36px; 135 font-family: 'Segoe UI', 'Arial', sans-serif; 136 } 137 .ufs-help-header { 138 display: -webkit-box; 139 display: -ms-flexbox; 140 display: flex; 141 -webkit-box-align: center; 142 -ms-flex-align: center; 143 align-items: center; 144 gap: 18px; 145 margin-bottom: 18px; 146 -ms-flex-wrap: wrap; 147 flex-wrap: wrap; 148 } 149 .ufs-help-header .ufs-help-logo { 150 width: 100px; 151 height: 100px; 152 display: -webkit-box; 153 display: -ms-flexbox; 154 display: flex; 155 -webkit-box-align: center; 156 -ms-flex-align: center; 157 align-items: center; 158 -webkit-box-pack: center; 159 -ms-flex-pack: center; 160 justify-content: center; 161 -ms-flex-negative: 0; 162 flex-shrink: 0; 163 overflow: hidden; 164 } 165 .ufs-help-header .ufs-help-logo img { 166 width: 100%; 167 height: auto; 168 display: block; 169 margin: auto; 170 } 171 .ufs-help-header .ufs-header-text { 172 display: -webkit-box; 173 display: -ms-flexbox; 174 display: flex; 175 -webkit-box-orient: vertical; 176 -webkit-box-direction: normal; 177 -ms-flex-direction: column; 178 flex-direction: column; 179 -webkit-box-pack: center; 180 -ms-flex-pack: center; 181 justify-content: center; 182 } 183 .ufs-help-title { 184 font-size: 2.1rem; 185 margin: 0; 186 font-weight: 700; 187 color: #222; 188 margin-bottom: 14px; 189 } 190 .ufs-help-subtitle { 191 margin: 2px 0 0 0; 192 color: #666; 193 font-size: 1.1rem; 194 line-height: 1.3; 195 } 196 .ufs-help-cards { 197 display: -webkit-box; 198 display: -ms-flexbox; 199 display: flex; 200 gap: 18px; 201 margin-bottom: 32px; 202 -ms-flex-wrap: wrap; 203 flex-wrap: wrap; 204 } 205 .ufs-help-card { 206 -webkit-box-flex: 1; 207 -ms-flex: 1 1 220px; 208 flex: 1 1 220px; 209 background: #f7fafd; 210 border-radius: 8px; 211 padding: 22px 18px 18px 18px; 212 box-shadow: 0 1px 4px rgba(0,0,0,0.03); 213 text-align: center; 214 -webkit-transition: box-shadow 0.2s; 215 transition: box-shadow 0.2s; 216 } 217 .ufs-help-card:hover { 218 box-shadow: 0 4px 16px rgba(0,123,170,0.10); 219 } 220 .ufs-help-card .ufs-card-icon { 221 font-size: 2rem; 222 margin-bottom: 8px; 223 height: 25px; 224 } 225 .ufs-help-card h3 { 226 margin: 0 0 8px 0; 227 font-size: 1.2rem; 228 color: #0073aa; 229 } 230 .ufs-help-card p { 231 color: #444; 232 font-size: 1rem; 233 margin-bottom: 12px; 234 } 235 .ufs-help-card a.ufs-btn { 236 padding: 7px 18px; 237 border-radius: 5px; 238 font-size: 1rem; 239 text-decoration: none; 240 background: #0073aa; 241 color: #fff; 242 -webkit-transition: background 0.2s; 243 transition: background 0.2s; 244 display: inline-block; 245 } 246 .ufs-help-card a.ufs-btn:hover { 247 background: #005177; 248 } 249 .ufs-section { 250 margin-bottom: 36px; 251 } 252 .ufs-section h2 { 253 font-size: 1.3rem; 254 margin-bottom: 10px; 255 color: #222; 256 margin-bottom: 20px; 257 } 258 .ufs-section ul { 259 margin: 0 0 0 18px; 260 } 261 .ufs-section li { 262 margin-bottom: 7px; 263 } 264 .ufs-support { 265 background: #f9f9f9; 266 border-left: 4px solid #0073aa; 267 padding: 18px 22px; 268 border-radius: 6px; 269 margin-bottom: 18px; 270 } 271 .ufs-support strong { 272 color: #0073aa; 273 } 274 .ufs-help-footer { 275 margin-top: 36px; 276 text-align: center; 277 color: #888; 278 font-size: 0.98rem; 279 } 280 @media (max-width: 700px) { 281 .ufs-help-wrap { padding: 16px 4vw; } 282 .ufs-help-cards { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; gap: 12px; } 283 .ufs-help-header { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; gap: 10px; } 284 .ufs-help-header .ufs-header-text { height: auto; } 285 } 286 /* Get Help Page CSS Ends */ -
ultimate-faq-solution/trunk/assets/css/admin-style.min.css
r3315529 r3378463 1 .ufaqsw-fa-field-modal{position:fixed;top:20%;right:20%;left:20%;bottom:20%;background:#fff;border-radius:2px;z-index:99999;padding:24px;box-shadow:0 0 15px rgba(0,0,0,.4);border:1px solid #f2f2f2;background:#fdfdfd}.ufaqsw-fa-field-modal *{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-close{position:absolute;top:24px;right:24px;font-size:30px;font-weight:700;cursor:pointer;background:red;color:#fff;height:24px;width:24px;text-align:center;border-radius:50%}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-close:hover{color:#2ea2cc}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-title{position:absolute;top:24px;margin:0;left:24px}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-icons{overflow-x:hidden;position:absolute;top:72px;bottom:24px;left:24px;right:24px}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-icons .ufaqsw-fa-field-modal-icon-holder{text-align:center;width:80px;height:90px;float:left;cursor:pointer;border:1px solid gray;padding:5px;margin:5px}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-icons .ufaqsw-fa-field-modal-icon-holder .ufaqsw-icon{font-size:40px;color:gray}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-icons .ufaqsw-fa-field-modal-icon-holder .ufaqsw-label{font-size:12px;line-height:18px}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-icons .ufaqsw-fa-field-modal-icon-holder:hover{border-color:#2ea2cc}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-icons .ufaqsw-fa-field-modal-icon-holder:hover .ufaqsw-icon{color:#2ea2cc}.ufaqsw-fa-field-metabox .ufaqsw-fa-field-current-icon{position:relative}.ufaqsw-fa-field-metabox .ufaqsw-fa-field-current-icon .ufaqsw-delete{position:absolute;font-size:20px;right:15px;top:15px;display:none;opacity:0;pointer-events:none}.ufaqsw-fa-field-metabox .ufaqsw-fa-field-current-icon .ufaqsw-delete.ufaqsw-active{display:block}.ufaqsw-fa-field-metabox .ufaqsw-fa-field-current-icon .ufaqsw-icon{font-size:100px;text-align:center;padding:20px 0;cursor:pointer}.ufaqsw-fa-field-metabox .ufaqsw-fa-field-current-icon .ufaqsw-icon:hover+.ufaqsw-delete{opacity:1}#woocommerce-product-data ul.wc-tabs li.ufaqsw-faq-tab_options a::before{font-family:Dashicons;content:"\f109"}#ufaqsw_faq_product_data{display:none}#ufaqsw-fa-field-modal{display:none}.ufaqsw_clear_icon_field{display:inline-block!important;float:right}.ufaqsw-fa-field-modal-icons form{display:inline-block!important}.ufaqsw_clear_fix{clear:both}.field_is_hidden{display:none!important}.ufaqsw_settings_table{background:#fff;padding:20px 20px;display:block;margin-bottom:20px}.ufaqsw_settings_table tr td i{display:block;font-size:13px;margin-top:8px} 1 .ufaqsw-fa-field-modal{position:fixed;top:20%;right:20%;left:20%;bottom:20%;background:#fff;border-radius:2px;z-index:99999;padding:24px;box-shadow:0 0 15px rgba(0,0,0,.4);border:1px solid #f2f2f2;background:#fdfdfd}.ufaqsw-fa-field-modal *{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-close{position:absolute;top:24px;right:24px;font-size:30px;font-weight:700;cursor:pointer;background:red;color:#fff;height:24px;width:24px;text-align:center;border-radius:50%}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-close:hover{color:#2ea2cc}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-title{position:absolute;top:24px;margin:0;left:24px}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-icons{overflow-x:hidden;position:absolute;top:72px;bottom:24px;left:24px;right:24px}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-icons .ufaqsw-fa-field-modal-icon-holder{text-align:center;width:80px;height:90px;float:left;cursor:pointer;border:1px solid gray;padding:5px;margin:5px}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-icons .ufaqsw-fa-field-modal-icon-holder .ufaqsw-icon{font-size:40px;color:gray}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-icons .ufaqsw-fa-field-modal-icon-holder .ufaqsw-label{font-size:12px;line-height:18px}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-icons .ufaqsw-fa-field-modal-icon-holder:hover{border-color:#2ea2cc}.ufaqsw-fa-field-modal .ufaqsw-fa-field-modal-icons .ufaqsw-fa-field-modal-icon-holder:hover .ufaqsw-icon{color:#2ea2cc}.ufaqsw-fa-field-metabox .ufaqsw-fa-field-current-icon{position:relative}.ufaqsw-fa-field-metabox .ufaqsw-fa-field-current-icon .ufaqsw-delete{position:absolute;font-size:20px;right:15px;top:15px;display:none;opacity:0;pointer-events:none}.ufaqsw-fa-field-metabox .ufaqsw-fa-field-current-icon .ufaqsw-delete.ufaqsw-active{display:block}.ufaqsw-fa-field-metabox .ufaqsw-fa-field-current-icon .ufaqsw-icon{font-size:100px;text-align:center;padding:20px 0;cursor:pointer}.ufaqsw-fa-field-metabox .ufaqsw-fa-field-current-icon .ufaqsw-icon:hover+.ufaqsw-delete{opacity:1}#woocommerce-product-data ul.wc-tabs li.ufaqsw-faq-tab_options a::before{font-family:Dashicons;content:"\f109"}#ufaqsw_faq_product_data{display:none}#ufaqsw-fa-field-modal{display:none}.ufaqsw_clear_icon_field{display:inline-block!important;float:right}.ufaqsw-fa-field-modal-icons form{display:inline-block!important}.ufaqsw_clear_fix{clear:both}.field_is_hidden{display:none!important}.ufaqsw_settings_table{background:#fff;padding:20px 20px;display:block;margin-bottom:20px}.ufaqsw_settings_table tr td i{display:block;font-size:13px;margin-top:8px}.ufs-help-wrap{max-width:900px;margin:30px auto;background:#fff;border-radius:10px;box-shadow:0 2px 16px rgba(0,0,0,.07);padding:32px 36px 36px 36px;font-family:'Segoe UI',Arial,sans-serif}.ufs-help-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:18px;margin-bottom:18px;-ms-flex-wrap:wrap;flex-wrap:wrap}.ufs-help-header .ufs-help-logo{width:100px;height:100px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.ufs-help-header .ufs-help-logo img{width:100%;height:auto;display:block;margin:auto}.ufs-help-header .ufs-header-text{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.ufs-help-title{font-size:2.1rem;margin:0;font-weight:700;color:#222;margin-bottom:14px}.ufs-help-subtitle{margin:2px 0 0 0;color:#666;font-size:1.1rem;line-height:1.3}.ufs-help-cards{display:-webkit-box;display:-ms-flexbox;display:flex;gap:18px;margin-bottom:32px;-ms-flex-wrap:wrap;flex-wrap:wrap}.ufs-help-card{-webkit-box-flex:1;-ms-flex:1 1 220px;flex:1 1 220px;background:#f7fafd;border-radius:8px;padding:22px 18px 18px 18px;box-shadow:0 1px 4px rgba(0,0,0,.03);text-align:center;-webkit-transition:box-shadow .2s;transition:box-shadow .2s}.ufs-help-card:hover{box-shadow:0 4px 16px rgba(0,123,170,.1)}.ufs-help-card .ufs-card-icon{font-size:2rem;margin-bottom:8px;height:25px}.ufs-help-card h3{margin:0 0 8px 0;font-size:1.2rem;color:#0073aa}.ufs-help-card p{color:#444;font-size:1rem;margin-bottom:12px}.ufs-help-card a.ufs-btn{padding:7px 18px;border-radius:5px;font-size:1rem;text-decoration:none;background:#0073aa;color:#fff;-webkit-transition:background .2s;transition:background .2s;display:inline-block}.ufs-help-card a.ufs-btn:hover{background:#005177}.ufs-section{margin-bottom:36px}.ufs-section h2{font-size:1.3rem;margin-bottom:10px;color:#222;margin-bottom:20px}.ufs-section ul{margin:0 0 0 18px}.ufs-section li{margin-bottom:7px}.ufs-support{background:#f9f9f9;border-left:4px solid #0073aa;padding:18px 22px;border-radius:6px;margin-bottom:18px}.ufs-support strong{color:#0073aa}.ufs-help-footer{margin-top:36px;text-align:center;color:#888;font-size:.98rem}@media (max-width:700px){.ufs-help-wrap{padding:16px 4vw}.ufs-help-cards{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:12px}.ufs-help-header{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:10px}.ufs-help-header .ufs-header-text{height:auto}} -
ultimate-faq-solution/trunk/assets/js/admin.js
r3315529 r3378463 56 56 document.execCommand("copy"); 57 57 }) 58 59 //Settings tab scripts60 61 $('.ufaqsw_click_handle').on('click', function(e){62 63 var obj = $(this);64 var container_id = obj.attr('href');65 $('.ufaqsw_click_handle').each(function(){66 $(this).removeClass('nav-tab-active');67 $($(this).attr('href')).hide();68 })69 obj.addClass('nav-tab-active');70 $(container_id).show();71 72 if ( '#getting_started' === container_id ) {73 $('.submit').hide();74 } else if ( '#export_import' === container_id ) {75 $('.submit').hide();76 } else {77 $('.submit').show();78 }79 80 setTimeout(function() {81 window.scrollTo(0, 0);82 }, 1);83 })84 85 86 87 var hash = window.location.hash;88 89 if(hash!=''){90 $('.ufaqsw_click_handle').each(function(){91 92 $($(this).attr('href')).hide();93 if($(this).attr('href')==hash){94 $(this).removeClass('nav-tab-active').addClass('nav-tab-active');95 96 if ( '#getting_started' === hash ) {97 $('.submit').hide();98 } else if ( '#export_import' === hash ) {99 $('.submit').hide();100 } else {101 $('.submit').show();102 }103 104 }else{105 $(this).removeClass('nav-tab-active');106 }107 })108 $(hash).show();109 }110 58 111 59 }); -
ultimate-faq-solution/trunk/assets/js/script.js
r3311707 r3378463 64 64 65 65 const toggleItem = (element) => { 66 if (ufaqsw_object_default.behaviour == 'accordion') { 66 if (ufaqsw_object_default.behaviour == 'accordion') { 67 67 closeall(element); 68 68 } … … 110 110 if (jQuery(this).hasClass('ufaqsw_active') && this !== exceptElement[0]) { 111 111 hideItem(jQuery(this)); 112 jQuery(this).find('i').toggle(); 112 113 } 113 114 }); -
ultimate-faq-solution/trunk/assets/js/script.min.js
r3311707 r3378463 1 jQuery(window).on("load",function(){let t={faq_item:".ufaqsw_element_src",faq_item_group:".ufaqsw_element_group_src",faq_filter_item:".filter-list__item"};jQuery(t.faq_filter_item).on("click",function(e){var t=jQuery(this).data("index"),t=jQuery("#"+t);t.length&&jQuery("html, body").animate({scrollTop:t.offset().top-140},500)}),jQuery(".ufaqsw_default_all_faq_content").length&&jQuery("input.ufaqsw_default_all_search_box").quicksearch(".ufaqsw_element_src",{delay:300,selector:[".ufaqsw_faq_question_src",".ufaqsw_faq_answer_src"],loader:"span.ufaqsw_search_loading",noResults:".ufaqsw_search_no_result",bind:"keyup keydown",onBefore:function(){},onAfter:function(){jQuery(t.faq_item_group).each(function(){var e=jQuery(this);e.find(t.faq_item).filter(function(){return"none"!==jQuery(this).css("display")}).length?e.show():e.hide()})},show:function(){jQuery(this).closest(t.faq_item).show()},hide:function(){jQuery(this).closest(t.faq_item).hide()},prepareQuery:function(e){return new RegExp(e,"i")},testQuery:function(e,t,a){return e.test(t)}})}),jQuery(function(t){let a=e=>{"accordion"==ufaqsw_object_default.behaviour&&i(e),e.hasClass("ufaqsw_active")?n(e):e.addClass("ufaqsw_active").closest(".ufaqsw_toggle_default").find(".ufaqsw-toggle-inner-default").slideDown(200),e.find("i").toggle();var t="true"===e.attr("aria-expanded"),t=(e.attr("aria-expanded",String(!t)),"true"===e.closest(".ufaqsw_toggle_default").find(".ufaqsw-toggle-inner-default").attr("aria-hidden"));e.closest(".ufaqsw_toggle_default").find(".ufaqsw-toggle-inner-default").attr("aria-hidden",String(!t))},n=e=>{e.hasClass("ufaqsw_active")&&e.removeClass("ufaqsw_active"),e.closest(".ufaqsw_toggle_default").find(".ufaqsw-toggle-inner-default").slideUp(200)},i=(t(".ufaqsw_toggle_default .ufaqsw-toggle-title-area-default").on("click",function(){a(t(this))}),t(".ufaqsw_toggle_default .ufaqsw-toggle-title-area-default").on("keydown",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),a(t(this)))}),function(e){jQuery(".ufaqsw_toggle_default .ufaqsw-toggle-title-area-default").each(function(){jQuery(this).hasClass("ufaqsw_active")&&this!==e[0]&& n(jQuery(this))})});"undefined"!=typeof ufaqsw_object_default&&"1"==ufaqsw_object_default.showall&&"accordion"!=ufaqsw_object_default.behaviour&&jQuery(".ufaqsw_toggle_default .ufaqsw-toggle-title-area-default").each(function(){jQuery(this).trigger("click")})}),jQuery(function(a){a(".ufaqsw_toggle_default > .ufaqsw_title_area_style1").on("click",function(e){t(a(this))}),a(".ufaqsw_toggle_default > .ufaqsw_title_area_style1").on("keydown",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),t(a(this)))});let t=e=>{var t=e.parent().find("[type=checkbox]"),t=("accordion"==ufaqsw_object_style_1.behaviour&&s(e.parent()),(t.attr("checked")?(t.attr("checked",!1),i):(t.attr("checked",!0),n))(t),"true"===e.attr("aria-expanded")),t=(e.attr("aria-expanded",String(!t)),"true"===e.next().attr("aria-hidden"));e.next().attr("aria-hidden",String(!t))},n=e=>{e.next().next().css({height:"auto",opacity:"1"}),e.next().find(".ufaqsw-style1-active-icon").css({display:"inline-block"}),e.next().find(".ufaqsw-style1-normal-icon").css({display:"none"})},i=e=>{e.next().next().css({height:"",opacity:"",padding:""}),e.next().find(".ufaqsw-style1-active-icon").css({display:"none"}),e.next().find(".ufaqsw-style1-normal-icon").css({display:"inline-block"})};var s=function(t){a(".ufaqsw_questions_style1").each(function(){var e=a(this);e.closest(".ufaqsw_toggle_default")[0]!==t[0]&&(e.attr("checked",!1),i(e))})}}),jQuery(function(a){a(".ufaqsw_box_style2").on("click",function(e){t(a(this))}),a(".ufaqsw_box_style2").on("keydown",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),t(a(this)))});let t=e=>{"accordion"==ufaqsw_object_style_2.behaviour&&n(e);var t="true"===e.attr("aria-expanded"),t=(e.attr("aria-expanded",String(!t)),"true"===e.next().attr("aria-hidden"));e.next().attr("aria-hidden",String(!t)),e.next().slideToggle("fast"),e.find("i").toggle()},n=function(t){a(".ufaqsw_draw_style2").each(function(){var e=a(this);e.is(":visible")&&e.prev()[0]!==t[0]&&(e.slideToggle("fast"),e.prev().find("i").toggle())})}});1 jQuery(window).on("load",function(){let t={faq_item:".ufaqsw_element_src",faq_item_group:".ufaqsw_element_group_src",faq_filter_item:".filter-list__item"};jQuery(t.faq_filter_item).on("click",function(e){var t=jQuery(this).data("index"),t=jQuery("#"+t);t.length&&jQuery("html, body").animate({scrollTop:t.offset().top-140},500)}),jQuery(".ufaqsw_default_all_faq_content").length&&jQuery("input.ufaqsw_default_all_search_box").quicksearch(".ufaqsw_element_src",{delay:300,selector:[".ufaqsw_faq_question_src",".ufaqsw_faq_answer_src"],loader:"span.ufaqsw_search_loading",noResults:".ufaqsw_search_no_result",bind:"keyup keydown",onBefore:function(){},onAfter:function(){jQuery(t.faq_item_group).each(function(){var e=jQuery(this);e.find(t.faq_item).filter(function(){return"none"!==jQuery(this).css("display")}).length?e.show():e.hide()})},show:function(){jQuery(this).closest(t.faq_item).show()},hide:function(){jQuery(this).closest(t.faq_item).hide()},prepareQuery:function(e){return new RegExp(e,"i")},testQuery:function(e,t,a){return e.test(t)}})}),jQuery(function(t){let a=e=>{"accordion"==ufaqsw_object_default.behaviour&&i(e),e.hasClass("ufaqsw_active")?n(e):e.addClass("ufaqsw_active").closest(".ufaqsw_toggle_default").find(".ufaqsw-toggle-inner-default").slideDown(200),e.find("i").toggle();var t="true"===e.attr("aria-expanded"),t=(e.attr("aria-expanded",String(!t)),"true"===e.closest(".ufaqsw_toggle_default").find(".ufaqsw-toggle-inner-default").attr("aria-hidden"));e.closest(".ufaqsw_toggle_default").find(".ufaqsw-toggle-inner-default").attr("aria-hidden",String(!t))},n=e=>{e.hasClass("ufaqsw_active")&&e.removeClass("ufaqsw_active"),e.closest(".ufaqsw_toggle_default").find(".ufaqsw-toggle-inner-default").slideUp(200)},i=(t(".ufaqsw_toggle_default .ufaqsw-toggle-title-area-default").on("click",function(){a(t(this))}),t(".ufaqsw_toggle_default .ufaqsw-toggle-title-area-default").on("keydown",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),a(t(this)))}),function(e){jQuery(".ufaqsw_toggle_default .ufaqsw-toggle-title-area-default").each(function(){jQuery(this).hasClass("ufaqsw_active")&&this!==e[0]&&(n(jQuery(this)),jQuery(this).find("i").toggle())})});"undefined"!=typeof ufaqsw_object_default&&"1"==ufaqsw_object_default.showall&&"accordion"!=ufaqsw_object_default.behaviour&&jQuery(".ufaqsw_toggle_default .ufaqsw-toggle-title-area-default").each(function(){jQuery(this).trigger("click")})}),jQuery(function(a){a(".ufaqsw_toggle_default > .ufaqsw_title_area_style1").on("click",function(e){t(a(this))}),a(".ufaqsw_toggle_default > .ufaqsw_title_area_style1").on("keydown",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),t(a(this)))});let t=e=>{var t=e.parent().find("[type=checkbox]"),t=("accordion"==ufaqsw_object_style_1.behaviour&&s(e.parent()),(t.attr("checked")?(t.attr("checked",!1),i):(t.attr("checked",!0),n))(t),"true"===e.attr("aria-expanded")),t=(e.attr("aria-expanded",String(!t)),"true"===e.next().attr("aria-hidden"));e.next().attr("aria-hidden",String(!t))},n=e=>{e.next().next().css({height:"auto",opacity:"1"}),e.next().find(".ufaqsw-style1-active-icon").css({display:"inline-block"}),e.next().find(".ufaqsw-style1-normal-icon").css({display:"none"})},i=e=>{e.next().next().css({height:"",opacity:"",padding:""}),e.next().find(".ufaqsw-style1-active-icon").css({display:"none"}),e.next().find(".ufaqsw-style1-normal-icon").css({display:"inline-block"})};var s=function(t){a(".ufaqsw_questions_style1").each(function(){var e=a(this);e.closest(".ufaqsw_toggle_default")[0]!==t[0]&&(e.attr("checked",!1),i(e))})}}),jQuery(function(a){a(".ufaqsw_box_style2").on("click",function(e){t(a(this))}),a(".ufaqsw_box_style2").on("keydown",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),t(a(this)))});let t=e=>{"accordion"==ufaqsw_object_style_2.behaviour&&n(e);var t="true"===e.attr("aria-expanded"),t=(e.attr("aria-expanded",String(!t)),"true"===e.next().attr("aria-hidden"));e.next().attr("aria-hidden",String(!t)),e.next().slideToggle("fast"),e.find("i").toggle()},n=function(t){a(".ufaqsw_draw_style2").each(function(){var e=a(this);e.is(":visible")&&e.prev()[0]!==t[0]&&(e.slideToggle("fast"),e.prev().find("i").toggle())})}}); -
ultimate-faq-solution/trunk/inc/AppearanceActions.php
r3322418 r3378463 48 48 if ( 49 49 ! isset( $_POST['ufaqsw_apply_appearance_to_all_nonce'], $_POST['ufaqsw_appearance_id'], $_POST['ufaqsw_apply_appearance_to_all'] ) 50 || ! wp_verify_nonce( $_POST['ufaqsw_apply_appearance_to_all_nonce'], 'ufaqsw_apply_appearance_to_all_' . $post_id ) 50 || ! wp_verify_nonce( $_POST['ufaqsw_apply_appearance_to_all_nonce'], 'ufaqsw_apply_appearance_to_all_' . $post_id ) // phpcs:ignore 51 51 ) { 52 52 return; … … 213 213 } 214 214 } 215 216 215 } -
ultimate-faq-solution/trunk/inc/admin/assets/js/ufaqsw-sorting.js
r3304087 r3378463 1 1 jQuery(function($) { 2 console.log( 'Testing...' );2 'use strict'; 3 3 var $tbody = $('#the-list'); 4 4 $tbody.sortable({ -
ultimate-faq-solution/trunk/inc/admin/class-directory-post-type.php
r3373207 r3378463 300 300 array( 301 301 'name' => '', 302 'desc' => esc_html__( 'Note: This section is visible only in the FAQ Assistant window .', 'ufaqsw' ),302 'desc' => esc_html__( 'Note: This section is visible only in the FAQ Assistant window and FAQ Group detail page if enabled.', 'ufaqsw' ), 303 303 'type' => 'title', 304 304 'id' => 'description_meta_title', … … 370 370 'type' => 'wysiwyg', 371 371 'options' => array( 372 'textarea_rows' => 20,372 'textarea_rows' => 5, 373 373 ), 374 374 ) … … 412 412 413 413 if ( 'ufaqsw_item_appearance' === $column_name ) { 414 $appearance = get_post_meta( $post_ID, 'linked_faq_appearance_id', true ); 414 415 $appearance = ufaqsw_get_appearance_id( $post_ID ); 416 415 417 if ( ! empty( $appearance ) ) { 416 418 $edit_link = get_edit_post_link( $appearance ); -
ultimate-faq-solution/trunk/inc/admin/class-faq-group-sorting.php
r3311707 r3378463 43 43 wp_enqueue_script( 44 44 'ufaqsw-sorting', 45 plugins_url( 'admin/assets/js/ufaqsw-sorting.js', dirname( __FILE__ )),45 plugins_url( 'admin/assets/js/ufaqsw-sorting.js', __DIR__ ), 46 46 array( 'jquery', 'jquery-ui-sortable' ), 47 47 defined( 'UFAQSW_VERSION' ) ? UFAQSW_VERSION : '1.0.0', … … 58 58 wp_enqueue_style( 59 59 'ufaqsw-sorting-css', 60 plugins_url( 'admin/assets/css/ufaqsw-sorting.css', dirname( __FILE__ )),60 plugins_url( 'admin/assets/css/ufaqsw-sorting.css', __DIR__ ), 61 61 array(), 62 62 defined( 'UFAQSW_VERSION' ) ? UFAQSW_VERSION : '1.0.0' … … 138 138 139 139 new FAQ_Group_Sorting(); 140 -
ultimate-faq-solution/trunk/inc/admin/installation.php
r3338582 r3378463 21 21 */ 22 22 class UFAQSW_Installation { 23 24 /**25 * Constructor for the UFAQSW_Installation class.26 *27 * Adds the activation redirect action.28 */29 public function __construct() {30 add_action( 'activated_plugin', array( &$this, 'activation_redirect' ) );31 }32 33 /**34 * Redirects to the settings page upon plugin activation.35 *36 * @param string $plugin The plugin being activated.37 */38 public function activation_redirect( $plugin ) {39 if ( UFAQSW_BASE === $plugin ) {40 if ( 'cli' !== php_sapi_name() ) {41 wp_safe_redirect( admin_url( 'edit.php?post_type=ufaqsw&page=ufaqsw-settings#getting_started' ) );42 exit;43 }44 }45 }46 23 47 24 /** … … 71 48 */ 72 49 public static function plugin_deactivation() { 73 50 // No actions needed on deactivation currently. 74 51 } 75 52 } 76 77 new UFAQSW_installation(); -
ultimate-faq-solution/trunk/inc/admin/settings/ai-integration.php
r3376729 r3378463 17 17 */ 18 18 function ufaqsw_register_ai_settings_page() { 19 20 if ( ! function_exists( 'wp_get_available_translations' ) ) { 21 require_once ABSPATH . 'wp-admin/includes/translation-install.php'; 22 } 23 24 $translations = wp_get_available_translations(); 25 $traslation_options = array( 'en_US' => 'English (US)' ); 26 foreach ( $translations as $lang_code => $translation ) { 27 $traslation_options[ $lang_code ] = $translation['english_name'] . ' (' . $lang_code . ')'; 28 } 29 19 30 $cmb = new_cmb2_box( 20 31 array( … … 56 67 'id' => 'chatgpt_model', 57 68 'type' => 'select', 58 'default' => ' gpt-3.5-turbo',69 'default' => 'GPT-4o', 59 70 'options' => array( 60 71 'gpt-3.5-turbo' => __( 'GPT-3.5 Turbo', 'ufaqsw' ), … … 63 74 ), 64 75 'description' => __( '<i>Select the ChatGPT model to use for AI-powered FAQ generation.</i>', 'ufaqsw' ), 76 ) 77 ); 78 79 $cmb->add_field( 80 array( 81 'name' => __( 'Language', 'ufaqsw' ), 82 'id' => 'ai_language', 83 'type' => 'select', 84 'default' => get_option( 'WPLANG', 'en_US' ), 85 'options' => $traslation_options, 86 'description' => __( '<i>Select the language to use for AI-powered FAQ generation.</i>', 'ufaqsw' ), 65 87 ) 66 88 ); -
ultimate-faq-solution/trunk/inc/ai-writing-assistant/includes/API/ChatGPT.php
r3315529 r3378463 22 22 * @var string 23 23 */ 24 private string $model = 'gpt-4 ';24 private string $model = 'gpt-4o'; 25 25 26 26 /** … … 75 75 public function refine( string $text, string $instruction = 'Refine the text' ): string { 76 76 if ( ! $this->api_key ) { 77 throw new \RuntimeException( __( 'Missing OpenAI API key.', 'ufaqsw' ) );77 throw new \RuntimeException( esc_html__( 'Missing OpenAI API key.', 'ufaqsw' ) ); 78 78 } 79 79 … … 111 111 if ( is_wp_error( $response ) ) { 112 112 113 throw new \RuntimeException( 'Request to OpenAI API failed: ' . $response->get_error_message() );113 throw new \RuntimeException( esc_html__( 'Request to OpenAI API failed: ', 'ufaqsw' ) . esc_html( $response->get_error_message() ) ); 114 114 } 115 115 116 116 $body = json_decode( wp_remote_retrieve_body( $response ), true ); 117 118 if ( isset( $body['error'] ) ) { 119 throw new \RuntimeException( esc_html__( 'OpenAI API error: ', 'ufaqsw' ) . esc_html( $body['error']['message'] ) ); 120 } 117 121 118 122 return $body['choices'][0]['message']['content'] ?? __( 'No response.', 'ufaqsw' ); … … 126 130 */ 127 131 private function get_language_name( string $code ): string { 128 $languages = array(129 'en' => 'English',130 'es' => 'Spanish',131 'fr' => 'French',132 'de' => 'German',133 'it' => 'Italian',134 'pt' => 'Portuguese',135 'nl' => 'Dutch',136 'pl' => 'Polish',137 );138 132 139 return $languages[ $code ] ?? $code; 133 if ( ! function_exists( 'wp_get_available_translations' ) ) { 134 require_once ABSPATH . 'wp-admin/includes/translation-install.php'; 135 } 136 137 $translations = wp_get_available_translations(); 138 $traslation_options = array( 'en_US' => 'English (US)' ); 139 foreach ( $translations as $lang_code => $translation ) { 140 $traslation_options[ $lang_code ] = $translation['english_name'] . ' (' . $lang_code . ')'; 141 } 142 143 return $traslation_options[ $code ] ?? $code; 140 144 } 141 145 } -
ultimate-faq-solution/trunk/inc/ai-writing-assistant/includes/Admin/Ajax.php
r3315529 r3378463 42 42 $chatgpt->set_api_key( (string) cmb2_get_option( 'ufaqsw_ai_integration_settings', 'chatgpt_api_key' ) ); 43 43 $chatgpt->set_model( (string) cmb2_get_option( 'ufaqsw_ai_integration_settings', 'chatgpt_model' ) ); 44 $chatgpt->set_language( (string) cmb2_get_option( 'ufaqsw_ai_integration_settings', 'ai_language' ) ); 44 45 $result = $chatgpt->refine( $text, $instruction ); 45 46 -
ultimate-faq-solution/trunk/inc/ai-writing-assistant/includes/Core/Plugin.php
r3315529 r3378463 4 4 5 5 use BTRefiner\Admin\Ajax; 6 use BTRefiner\Admin\AiGenerator; 6 7 use BTRefiner\Admin\TinyMCEIntegration; 7 8 … … 26 27 new Ajax(); 27 28 } 29 30 new AiGenerator(); 28 31 } 29 32 -
ultimate-faq-solution/trunk/inc/functions/actions_and_filters.php
r3373207 r3378463 276 276 'edit.php?post_type=ufaqsw_appearance', 277 277 'ufaqsw_chatbot_settings', 278 'ufaqsw_ai_integration_settings', 278 279 'ufaqsw-settings', 280 'ufs-export-import', 281 'ufaqsw-get-help', 279 282 ); 280 283 -
ultimate-faq-solution/trunk/inc/languages/ultimate-faq-solution.pot
r3376729 r3378463 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Ultimate FAQ Solution 1.7. 5\n"5 "Project-Id-Version: Ultimate FAQ Solution 1.7.6\n" 6 6 "Report-Msgid-Bugs-To: " 7 7 "https://wordpress.org/support/plugin/ultimate-faq-solution\n" 8 "POT-Creation-Date: 2025-10-1 1 15:59:57+00:00\n"8 "POT-Creation-Date: 2025-10-14 22:04:37+00:00\n" 9 9 "MIME-Version: 1.0\n" 10 10 "Content-Type: text/plain; charset=utf-8\n" … … 63 63 64 64 #: inc/AppearanceActions.php:189 inc/admin/class-directory-post-type.php:389 65 #: inc/admin/settings/ai-integration.php: 8565 #: inc/admin/settings/ai-integration.php:107 66 66 msgid "Title" 67 67 msgstr "" … … 173 173 174 174 #: inc/ExportImport/Admin/views/export-page.php:74 175 #: inc/admin/settings/ai-integration.php: 28176 #: inc/admin/settings/ai-integration.php: 34175 #: inc/admin/settings/ai-integration.php:39 176 #: inc/admin/settings/ai-integration.php:45 177 177 msgid "AI Integration" 178 178 msgstr "" … … 232 232 233 233 #: inc/FAQGroupActions.php:109 inc/admin/class-directory-post-type.php:75 234 #: inc/admin/class-directory-post-type.php:41 7234 #: inc/admin/class-directory-post-type.php:419 235 235 msgid "Edit Appearance" 236 236 msgstr "" … … 270 270 #. translators: %s is the name of the template that was not found. 271 271 msgid "%s Template Not Found" 272 msgstr "" 273 274 #: inc/admin/RegisterAdminPages.php:139 275 msgid "Settings saved successfully." 276 msgstr "" 277 278 #: inc/admin/RegisterAdminPages.php:144 279 msgid "Settings saved successfully. Permalinks have been refreshed." 272 280 msgstr "" 273 281 … … 724 732 725 733 #: inc/admin/class-directory-post-type.php:302 726 msgid "Note: This section is visible only in the FAQ Assistant window." 734 msgid "" 735 "Note: This section is visible only in the FAQ Assistant window and FAQ " 736 "Group detail page if enabled." 727 737 msgstr "" 728 738 … … 781 791 msgstr "" 782 792 783 #: inc/admin/class-directory-post-type.php:53 6793 #: inc/admin/class-directory-post-type.php:538 784 794 msgid "Duplicate this item" 785 795 msgstr "" 786 796 787 #: inc/admin/class-directory-post-type.php:53 6797 #: inc/admin/class-directory-post-type.php:538 788 798 msgid "Duplicate" 789 799 msgstr "" … … 809 819 msgstr "" 810 820 811 #: inc/admin/settings/ai-integration.php: 22821 #: inc/admin/settings/ai-integration.php:33 812 822 msgid "AI Integration Settings" 813 823 msgstr "" 814 824 815 #: inc/admin/settings/ai-integration.php: 37825 #: inc/admin/settings/ai-integration.php:48 816 826 msgid "" 817 827 "<i>Enable this option to activate the AI-powered FAQ generation on your " … … 819 829 msgstr "" 820 830 821 #: inc/admin/settings/ai-integration.php: 42831 #: inc/admin/settings/ai-integration.php:53 822 832 msgid "ChatGPT API Key" 823 833 msgstr "" 824 834 825 #: inc/admin/settings/ai-integration.php: 45835 #: inc/admin/settings/ai-integration.php:56 826 836 msgid "" 827 837 "<i>Enter your OpenAI ChatGPT API key to enable AI-powered FAQ " … … 830 840 msgstr "" 831 841 832 #: inc/admin/settings/ai-integration.php: 55842 #: inc/admin/settings/ai-integration.php:66 833 843 msgid "ChatGPT Model" 834 844 msgstr "" 835 845 836 #: inc/admin/settings/ai-integration.php: 60846 #: inc/admin/settings/ai-integration.php:71 837 847 msgid "GPT-3.5 Turbo" 838 848 msgstr "" 839 849 840 #: inc/admin/settings/ai-integration.php: 61850 #: inc/admin/settings/ai-integration.php:72 841 851 msgid "GPT-4" 842 852 msgstr "" 843 853 844 #: inc/admin/settings/ai-integration.php: 62854 #: inc/admin/settings/ai-integration.php:73 845 855 msgid "GPT-4o" 846 856 msgstr "" 847 857 848 #: inc/admin/settings/ai-integration.php: 64858 #: inc/admin/settings/ai-integration.php:75 849 859 msgid "<i>Select the ChatGPT model to use for AI-powered FAQ generation.</i>" 850 860 msgstr "" 851 861 852 #: inc/admin/settings/ai-integration.php:72 862 #: inc/admin/settings/ai-integration.php:81 863 msgid "Language" 864 msgstr "" 865 866 #: inc/admin/settings/ai-integration.php:86 867 msgid "<i>Select the language to use for AI-powered FAQ generation.</i>" 868 msgstr "" 869 870 #: inc/admin/settings/ai-integration.php:94 853 871 msgid "AI Commands" 854 872 msgstr "" 855 873 856 #: inc/admin/settings/ai-integration.php: 73874 #: inc/admin/settings/ai-integration.php:95 857 875 msgid "" 858 876 "Add custom AI commands for the FAQ Generation. These commands will be " … … 860 878 msgstr "" 861 879 862 #: inc/admin/settings/ai-integration.php: 75880 #: inc/admin/settings/ai-integration.php:97 863 881 msgid "Command {#}" 864 882 msgstr "" 865 883 866 #: inc/admin/settings/ai-integration.php: 76884 #: inc/admin/settings/ai-integration.php:98 867 885 msgid "Add Command" 868 886 msgstr "" 869 887 870 #: inc/admin/settings/ai-integration.php: 77888 #: inc/admin/settings/ai-integration.php:99 871 889 msgid "Remove Command" 872 890 msgstr "" 873 891 874 #: inc/admin/settings/ai-integration.php: 94892 #: inc/admin/settings/ai-integration.php:116 875 893 msgid "Commands" 876 894 msgstr "" 877 895 878 #: inc/admin/settings/ai-integration.php:1 22896 #: inc/admin/settings/ai-integration.php:144 879 897 msgid "" 880 898 "Configure AI integration to automatically generate and enhance FAQ answers " … … 885 903 msgstr "" 886 904 887 #: inc/admin/settings/ai-integration.php:1 26905 #: inc/admin/settings/ai-integration.php:148 888 906 msgid "Read the AI Integration Documentation" 889 907 msgstr "" 890 908 891 #: inc/admin/settings/ai-integration.php:1 51909 #: inc/admin/settings/ai-integration.php:173 892 910 msgid "Refine the text" 893 911 msgstr "" 894 912 895 #: inc/admin/settings/ai-integration.php:1 52913 #: inc/admin/settings/ai-integration.php:174 896 914 msgid "Refine and improve the following text." 897 915 msgstr "" 898 916 899 #: inc/admin/settings/ai-integration.php:1 55917 #: inc/admin/settings/ai-integration.php:177 900 918 msgid "Make it longer" 901 919 msgstr "" 902 920 903 #: inc/admin/settings/ai-integration.php:1 56921 #: inc/admin/settings/ai-integration.php:178 904 922 msgid "Make the following text longer and more detailed." 905 923 msgstr "" 906 924 907 #: inc/admin/settings/ai-integration.php:1 59925 #: inc/admin/settings/ai-integration.php:181 908 926 msgid "Make it shorter" 909 927 msgstr "" 910 928 911 #: inc/admin/settings/ai-integration.php:1 60929 #: inc/admin/settings/ai-integration.php:182 912 930 msgid "Make the following text more concise." 913 931 msgstr "" 914 932 915 #: inc/admin/settings/ai-integration.php:1 63933 #: inc/admin/settings/ai-integration.php:185 916 934 msgid "Execute as command" 917 935 msgstr "" 918 936 919 #: inc/admin/settings/ai-integration.php:1 64937 #: inc/admin/settings/ai-integration.php:186 920 938 msgid "Execute this text as prompt." 921 939 msgstr "" 922 940 923 #: inc/admin/settings/settings.php:117 924 msgid "Settings saved successfully." 925 msgstr "" 926 927 #: inc/admin/settings/settings.php:122 928 msgid "Settings saved successfully. Permalinks have been refreshed." 929 msgstr "" 930 931 #: inc/admin/settings/ui.php:206 941 #: inc/admin/templates/get-help.php:18 942 msgid "Get Help" 943 msgstr "" 944 945 #: inc/admin/templates/get-help.php:19 946 msgid "Support, documentation, and troubleshooting for Ultimate FAQ Solution." 947 msgstr "" 948 949 #: inc/admin/templates/get-help.php:25 950 msgid "Documentation" 951 msgstr "" 952 953 #: inc/admin/templates/get-help.php:26 954 msgid "Read the full plugin documentation and feature guides." 955 msgstr "" 956 957 #: inc/admin/templates/get-help.php:31 958 msgid "Get Support" 959 msgstr "" 960 961 #: inc/admin/templates/get-help.php:32 962 msgid "Contact our team for help or to report a bug." 963 msgstr "" 964 965 #: inc/admin/templates/get-help.php:42 966 msgid "GitHub" 967 msgstr "" 968 969 #: inc/admin/templates/get-help.php:43 970 msgid "View the source code, report issues, or contribute on GitHub." 971 msgstr "" 972 973 #: inc/admin/templates/get-help.php:49 974 msgid "Need More Help?" 975 msgstr "" 976 977 #: inc/admin/templates/get-help.php:51 978 msgid "We’re here to help!" 979 msgstr "" 980 981 #: inc/admin/templates/get-help.php:51 982 msgid "Contact us for fast, friendly support:" 983 msgstr "" 984 985 #: inc/admin/templates/get-help.php:56 986 msgid "We typically respond within 1 business day." 987 msgstr "" 988 989 #: inc/admin/templates/get-help.php:60 990 msgid "Ultimate FAQ Solution by " 991 msgstr "" 992 993 #: inc/admin/templates/settings.php:199 932 994 msgid "" 933 995 "You need the WooCommerce plugin installed and activated to use these " … … 939 1001 msgstr "" 940 1002 941 #: inc/ai-writing-assistant/includes/API/ChatGPT.php:118 1003 #: inc/ai-writing-assistant/includes/API/ChatGPT.php:113 1004 msgid "Request to OpenAI API failed: " 1005 msgstr "" 1006 1007 #: inc/ai-writing-assistant/includes/API/ChatGPT.php:119 1008 msgid "OpenAI API error: " 1009 msgstr "" 1010 1011 #: inc/ai-writing-assistant/includes/API/ChatGPT.php:122 942 1012 msgid "No response." 1013 msgstr "" 1014 1015 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:44 1016 msgid "Created with AI" 1017 msgstr "" 1018 1019 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:72 1020 msgid "AI FAQ Group Generator - Ultimate FAQ Solution" 1021 msgstr "" 1022 1023 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:72 1024 msgid "Create with AI" 1025 msgstr "" 1026 1027 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:126 1028 msgid "Create FAQ Group with AI" 1029 msgstr "" 1030 1031 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:129 1032 msgid "FAQ Group Title:" 1033 msgstr "" 1034 1035 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:130 1036 msgid "e.g. Shipping & Delivery" 1037 msgstr "" 1038 1039 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:131 1040 msgid "" 1041 "Give your FAQ group a short, descriptive title. For example, \"Shipping & " 1042 "Delivery\", \"Product Returns\", or \"Account Setup\"." 1043 msgstr "" 1044 1045 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:135 1046 msgid "Context (page link or text):" 1047 msgstr "" 1048 1049 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:136 1050 msgid "Paste a page link or short description..." 1051 msgstr "" 1052 1053 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:138 1054 msgid "" 1055 "Provide the content or context that the AI will use to generate relevant " 1056 "FAQs." 1057 msgstr "" 1058 1059 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:139 1060 msgid "You can paste a page URL, a paragraph of text, or product/service details." 1061 msgstr "" 1062 1063 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:144 1064 msgid "Number of FAQ items:" 1065 msgstr "" 1066 1067 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:146 1068 msgid "Select how many FAQs you want the AI to generate for this group (1-20)." 1069 msgstr "" 1070 1071 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:150 1072 msgid "Tone / Style:" 1073 msgstr "" 1074 1075 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:152 1076 msgid "Neutral / Informative" 1077 msgstr "" 1078 1079 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:153 1080 msgid "Friendly & Conversational" 1081 msgstr "" 1082 1083 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:154 1084 msgid "Professional & Formal" 1085 msgstr "" 1086 1087 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:155 1088 msgid "Technical & Detailed" 1089 msgstr "" 1090 1091 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:156 1092 msgid "Persuasive / Marketing Style" 1093 msgstr "" 1094 1095 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:158 1096 msgid "Choose the style in which answers should be written." 1097 msgstr "" 1098 1099 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:162 1100 msgid "Generate FAQ Group" 1101 msgstr "" 1102 1103 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:186 1104 msgid "AI Integration Not Enabled" 1105 msgstr "" 1106 1107 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:188 1108 msgid "" 1109 "To use the AI FAQ Generator, please enable AI Integration in your plugin " 1110 "settings." 1111 msgstr "" 1112 1113 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:194 1114 msgid "Enable AI Integration" 1115 msgstr "" 1116 1117 #: inc/ai-writing-assistant/includes/Admin/AiGenerator.php:196 1118 msgid "Close" 943 1119 msgstr "" 944 1120 … … 985 1161 msgstr "" 986 1162 987 #: inc/functions/actions_and_filters.php:353 1163 #: inc/functions/actions_and_filters.php:356 1164 #: inc/functions/actions_and_filters.php:365 1165 msgid "FAQ Group published." 1166 msgstr "" 1167 1168 #: inc/functions/actions_and_filters.php:357 1169 msgid "Custom field updated." 1170 msgstr "" 1171 1172 #: inc/functions/actions_and_filters.php:358 1173 msgid "Custom field deleted." 1174 msgstr "" 1175 1176 #: inc/functions/actions_and_filters.php:359 1177 msgid "FAQ Group updated." 1178 msgstr "" 1179 988 1180 #: inc/functions/actions_and_filters.php:362 989 msgid "FAQ Group published."990 msgstr ""991 992 #: inc/functions/actions_and_filters.php:354993 msgid "Custom field updated."994 msgstr ""995 996 #: inc/functions/actions_and_filters.php:355997 msgid "Custom field deleted."998 msgstr ""999 1000 #: inc/functions/actions_and_filters.php:3561001 msgid "FAQ Group updated."1002 msgstr ""1003 1004 #: inc/functions/actions_and_filters.php:3591005 1181 #. translators: %s: Date and time of the revision 1006 1182 msgid "FAQ Group restored to revision from %s." 1007 1183 msgstr "" 1008 1184 1009 #: inc/functions/actions_and_filters.php:36 31185 #: inc/functions/actions_and_filters.php:366 1010 1186 msgid "FAQ Group saved." 1011 1187 msgstr "" 1012 1188 1013 #: inc/functions/actions_and_filters.php:36 41189 #: inc/functions/actions_and_filters.php:367 1014 1190 msgid "FAQ Group submitted." 1015 1191 msgstr "" 1016 1192 1017 #: inc/functions/actions_and_filters.php:3 671193 #: inc/functions/actions_and_filters.php:370 1018 1194 #. translators: %s: Date and time the FAQ Group is scheduled for 1019 1195 msgid "FAQ Group scheduled for: <strong>%s</strong>." 1020 1196 msgstr "" 1021 1197 1022 #: inc/functions/actions_and_filters.php:37 01198 #: inc/functions/actions_and_filters.php:373 1023 1199 msgid "FAQ Group draft updated." 1024 1200 msgstr "" … … 1756 1932 1757 1933 #. Plugin URI of the plugin/theme 1758 msgid "https://www. braintum.com/ultimate-faq-solution/"1934 msgid "https://www.ultimatefaqsolution.com/" 1759 1935 msgstr "" 1760 1936 -
ultimate-faq-solution/trunk/init.php
r3376729 r3378463 10 10 * 11 11 * Plugin Name: Ultimate FAQ Solution 12 * Version: 1.7. 513 * Plugin URI: https://www. braintum.com/ultimate-faq-solution/12 * Version: 1.7.6 13 * Plugin URI: https://www.ultimatefaqsolution.com/ 14 14 * Description: A WordPress plugin to create, organize, and display FAQs with responsive layouts and styles. 15 15 * Author: braintum … … 34 34 * Use `plugin_dir_path` and `plugin_dir_url` only when necessary to reduce overhead. 35 35 */ 36 define( 'UFAQSW_VERSION', '1.7. 5' );36 define( 'UFAQSW_VERSION', '1.7.6' ); 37 37 define( 'UFAQSW_PRFX', 'ufaqsw' ); 38 38 define( 'UFAQSW_BASE', plugin_basename( __FILE__ ) ); … … 55 55 if ( is_admin() ) { 56 56 include_once UFAQSW__PLUGIN_DIR . 'inc/admin/class-faq-group-sorting.php'; 57 include_once UFAQSW__PLUGIN_DIR . 'inc/admin/ settings/settings.php';57 include_once UFAQSW__PLUGIN_DIR . 'inc/admin/RegisterAdminPages.php'; 58 58 include_once UFAQSW__PLUGIN_DIR . 'inc/admin/chatbot.php'; 59 59 include_once UFAQSW__PLUGIN_DIR . 'inc/admin/icons/class.icons.php'; … … 62 62 include_once UFAQSW__PLUGIN_DIR . 'inc/ExportImport/bootstrap.php'; 63 63 64 Mahedi\UltimateFaqSolution\Admin\RegisterAdminPages::get_instance(); 64 65 Mahedi\UltimateFaqSolution\ExportImport\bootstrap(); 65 66 } … … 91 92 92 93 load_plugin_textdomain( 'ufaqsw', false, dirname( plugin_basename( __FILE__ ) ) . '/inc/languages' ); 94 95 // Deactivation feedback. 96 new Mahedi\UltimateFaqSolution\DeactivationFeedback(); 93 97 } 94 98 ); -
ultimate-faq-solution/trunk/readme.txt
r3376729 r3378463 1 1 === Ultimate FAQ Solution === 2 2 Contributors: braintum 3 Donate link: https://www. solrengine.com/4 Tags: faq -directory, accordion, knowledgebase, product-faq, ai3 Donate link: https://www.braintum.com/ 4 Tags: faq, knowledgebase, accordion, ai, woocommerce 5 5 Requires at least: 5.1 6 6 Tested up to: 6.8.3 7 Stable tag: 1.7. 57 Stable tag: 1.7.6 8 8 Requires PHP: 7.4.0 9 9 License: GPLv2 or later 10 10 License URI: https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses 11 11 12 A WordPress plugin to create, organize, and display FAQs with responsive layouts, styles, and AI-powered answer suggestions.12 A WordPress plugin to create, organize, and display FAQs with AI-powered answer suggestions, one-click FAQ group generation, WooCommerce integration, and a floating chat assistant. 13 13 14 14 == Description == 15 15 16 = 🚀 What is Ultimate FAQ Solution? = 17 18 Ultimate FAQ Solution is a powerful and flexible WordPress plugin for creating, organizing, and displaying FAQs with ease. Designed for both standard WordPress sites and WooCommerce stores, it offers responsive layouts, accordion and toggle display modes, and a searchable FAQ directory. 16 Ultimate FAQ Solution is a powerful, flexible WordPress plugin for creating, organizing, and displaying FAQs—now with advanced AI features. Instantly generate entire FAQ groups with one click using the "Create with AI" tool, or draft individual answers with AI-powered suggestions. Designed for both standard WordPress sites and WooCommerce stores, it offers responsive layouts, accordion and toggle display modes, and a searchable FAQ directory. The interactive FAQ Assistant adds a floating chat icon to your site, giving users instant, conversational access to your knowledge base. 19 17 20 18 With Ultimate FAQ Solution, you can: … … 30 28 Whether you need a simple FAQ section or a full-featured knowledge base, Ultimate FAQ Solution streamlines the process and helps you deliver fast, accurate answers to your visitors. 31 29 30 = 🧠 "Create with AI" Feature = 31 32 The new "Create with AI" feature allows you to automatically generate entire FAQ groups using advanced AI assistance. Instead of manually writing each question and answer, you can now leverage AI to quickly draft a set of relevant FAQs for your topic, product, or service—all in just a few clicks. 33 34 **How it works:** 35 - When creating a new FAQ group, simply click the "Create with AI" button. 36 - Enter a FAQ Group Title and context of what you want FAQs about. 37 - The AI will instantly generate a list of suggested questions and answers tailored to your input. 38 - You can edit, and customize the generated FAQs and saving them to your site. 39 40 **Benefits:** 41 - Save time and effort when building new FAQ sections. 42 - Get high-quality, relevant questions and answers based on your topic. 43 - Easily expand your knowledge base or help center with minimal manual work. 44 - Maintain full control—edit or remove any AI-generated content before publishing. 45 46 This feature is perfect for quickly launching new FAQ groups, onboarding new products, or providing instant support content for your users. The "Create with AI" tool is designed to streamline your workflow and help you deliver accurate, helpful information to your audience faster than ever. 47 32 48 = 🤖 AI-Powered FAQ Answer Suggestions = 33 49 … … 41 57 42 58 = ✅ Key Features Overview = 59 * 🧠 **Create with AI:** Instantly generate entire FAQ groups with one click using advanced AI assistance. 43 60 * 💬 **FAQ Assistant:** Add an interactive, floating help icon with chat-style FAQ access for instant answers. 44 61 * 🤖 **AI-Powered Answer Suggestions:** Instantly generate FAQ answers using AI to save time and improve accuracy. … … 165 182 == Changelog == 166 183 184 =1.7.6= 185 * New: 🧠 "Create with AI" Feature: Introduced the "Create with AI" option in FAQ Group creation, allowing automatic generation of FAQs using AI assistance. 186 * Enhanced: 🎨 Get Help Page Revamp: Redesigned the Get Help page for a cleaner and more user-friendly admin experience. 187 * Enhanced: ⚙️ Settings Page Update: Improved layout and usability of the plugin settings page. 188 * Enhanced: 💬 Thickbox Popup Update: Enhanced "Create with AI" thickbox modal for smoother user interaction. 189 * Fixed: 🧩 Default Template Accordion Fix: Resolved an issue with the default FAQ accordion behavior. 190 * Improved: 🔄 Refactored Codebase: Streamlined several core functions for better performance and maintainability. 191 * Updated: 🌐 Translations Updated: Improved and added missing translations across the plugin. 192 167 193 = 1.7.5 = 168 194 * New: Enhanced native export/import functionality for seamless FAQ data migration and backup. -
ultimate-faq-solution/trunk/vendor/composer/autoload_classmap.php
r3376729 r3378463 12 12 'Mahedi\\UltimateFaqSolution\\Chatbot' => $baseDir . '/inc/Chatbot.php', 13 13 'Mahedi\\UltimateFaqSolution\\Custom_Resources' => $baseDir . '/inc/Custom_Resources.php', 14 'Mahedi\\UltimateFaqSolution\\DeactivationFeedback' => $baseDir . '/inc/DeactivationFeedback.php', 14 15 'Mahedi\\UltimateFaqSolution\\ExportImport\\Admin\\AdminPage' => $baseDir . '/inc/ExportImport/Admin/AdminPage.php', 15 16 'Mahedi\\UltimateFaqSolution\\ExportImport\\Base\\BaseExporter' => $baseDir . '/inc/ExportImport/Base/BaseExporter.php', -
ultimate-faq-solution/trunk/vendor/composer/autoload_static.php
r3376729 r3378463 32 32 'Mahedi\\UltimateFaqSolution\\Chatbot' => __DIR__ . '/../..' . '/inc/Chatbot.php', 33 33 'Mahedi\\UltimateFaqSolution\\Custom_Resources' => __DIR__ . '/../..' . '/inc/Custom_Resources.php', 34 'Mahedi\\UltimateFaqSolution\\DeactivationFeedback' => __DIR__ . '/../..' . '/inc/DeactivationFeedback.php', 34 35 'Mahedi\\UltimateFaqSolution\\ExportImport\\Admin\\AdminPage' => __DIR__ . '/../..' . '/inc/ExportImport/Admin/AdminPage.php', 35 36 'Mahedi\\UltimateFaqSolution\\ExportImport\\Base\\BaseExporter' => __DIR__ . '/../..' . '/inc/ExportImport/Base/BaseExporter.php', -
ultimate-faq-solution/trunk/vendor/composer/installed.php
r3376729 r3378463 4 4 'pretty_version' => 'dev-main', 5 5 'version' => 'dev-main', 6 'reference' => ' eb0ff6f08ec5044fe042817890f3a6925eb23215',6 'reference' => '13f58ea401dd1f74bec223564f9b31fbcac3b4a3', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 23 23 'pretty_version' => 'dev-main', 24 24 'version' => 'dev-main', 25 'reference' => ' eb0ff6f08ec5044fe042817890f3a6925eb23215',25 'reference' => '13f58ea401dd1f74bec223564f9b31fbcac3b4a3', 26 26 'type' => 'wordpress-plugin', 27 27 'install_path' => __DIR__ . '/../../',
Note: See TracChangeset
for help on using the changeset viewer.