Changeset 3393775
- Timestamp:
- 11/11/2025 04:05:25 PM (3 months ago)
- Location:
- askany
- Files:
-
- 404 added
- 8 edited
-
tags/1.5.1 (added)
-
tags/1.5.1/askany.php (added)
-
tags/1.5.1/assets (added)
-
tags/1.5.1/assets/css (added)
-
tags/1.5.1/assets/css/admin.css (added)
-
tags/1.5.1/assets/css/frontend.css (added)
-
tags/1.5.1/assets/js (added)
-
tags/1.5.1/assets/js/admin.js (added)
-
tags/1.5.1/assets/js/encryption.js (added)
-
tags/1.5.1/assets/js/external-sources.js (added)
-
tags/1.5.1/assets/js/frontend-sse.js (added)
-
tags/1.5.1/assets/js/frontend.js (added)
-
tags/1.5.1/assets/js/sse-client.js (added)
-
tags/1.5.1/assets/library (added)
-
tags/1.5.1/assets/library/toastmaster.min.js (added)
-
tags/1.5.1/changelog.txt (added)
-
tags/1.5.1/composer.json (added)
-
tags/1.5.1/dist (added)
-
tags/1.5.1/dist/css (added)
-
tags/1.5.1/dist/css/admin.min.css (added)
-
tags/1.5.1/dist/css/dynamic-pricing.min.css (added)
-
tags/1.5.1/dist/css/frontend.min.css (added)
-
tags/1.5.1/dist/css/pro-features.min.css (added)
-
tags/1.5.1/dist/js (added)
-
tags/1.5.1/dist/js/admin.min.js (added)
-
tags/1.5.1/dist/js/dynamic-pricing.min.js (added)
-
tags/1.5.1/dist/js/encryption.min.js (added)
-
tags/1.5.1/dist/js/frontend.min.js (added)
-
tags/1.5.1/dist/js/markdown-parser.min.js (added)
-
tags/1.5.1/dist/js/pro-features.min.js (added)
-
tags/1.5.1/dist/js/pro-modal.min.js (added)
-
tags/1.5.1/dist/js/sse-client.min.js (added)
-
tags/1.5.1/includes (added)
-
tags/1.5.1/includes/class-admin-pages.php (added)
-
tags/1.5.1/includes/class-ajax-handler.php (added)
-
tags/1.5.1/includes/class-api-manager.php (added)
-
tags/1.5.1/includes/class-assets-manager.php (added)
-
tags/1.5.1/includes/class-content-indexer.php (added)
-
tags/1.5.1/includes/class-database.php (added)
-
tags/1.5.1/includes/class-encryption-handler.php (added)
-
tags/1.5.1/includes/class-external-sources-handler.php (added)
-
tags/1.5.1/includes/class-pdf-handler.php (added)
-
tags/1.5.1/includes/class-pdf-upload-handler.php (added)
-
tags/1.5.1/includes/class-plugin.php (added)
-
tags/1.5.1/includes/class-session-manager.php (added)
-
tags/1.5.1/includes/class-shortcode-handler.php (added)
-
tags/1.5.1/includes/class-sse-handler.php (added)
-
tags/1.5.1/includes/providers (added)
-
tags/1.5.1/includes/providers/class-abstract-provider.php (added)
-
tags/1.5.1/includes/providers/class-deepseek-provider.php (added)
-
tags/1.5.1/includes/providers/class-gemini-provider.php (added)
-
tags/1.5.1/includes/providers/class-openai-provider.php (added)
-
tags/1.5.1/includes/providers/class-provider-factory.php (added)
-
tags/1.5.1/includes/providers/interface-ai-provider.php (added)
-
tags/1.5.1/languages (added)
-
tags/1.5.1/languages/askany.pot (added)
-
tags/1.5.1/package.json (added)
-
tags/1.5.1/readme.txt (added)
-
tags/1.5.1/templates (added)
-
tags/1.5.1/templates/admin-api-stats.php (added)
-
tags/1.5.1/templates/admin-chat-logs.php (added)
-
tags/1.5.1/templates/admin-content-index.php (added)
-
tags/1.5.1/templates/admin-external-sources.php (added)
-
tags/1.5.1/templates/admin-home-settings.php (added)
-
tags/1.5.1/templates/admin-live-chat.php (added)
-
tags/1.5.1/templates/admin-pdf-import.php (added)
-
tags/1.5.1/templates/admin-qa.php (added)
-
tags/1.5.1/templates/admin-settings.php (added)
-
tags/1.5.1/templates/admin-user-agents.php (added)
-
tags/1.5.1/templates/frontend-widget.php (added)
-
tags/1.5.1/uninstall.php (added)
-
tags/1.5.1/vendor (added)
-
tags/1.5.1/vendor/autoload.php (added)
-
tags/1.5.1/vendor/bin (added)
-
tags/1.5.1/vendor/composer (added)
-
tags/1.5.1/vendor/composer/ClassLoader.php (added)
-
tags/1.5.1/vendor/composer/InstalledVersions.php (added)
-
tags/1.5.1/vendor/composer/LICENSE (added)
-
tags/1.5.1/vendor/composer/autoload_classmap.php (added)
-
tags/1.5.1/vendor/composer/autoload_files.php (added)
-
tags/1.5.1/vendor/composer/autoload_namespaces.php (added)
-
tags/1.5.1/vendor/composer/autoload_psr4.php (added)
-
tags/1.5.1/vendor/composer/autoload_real.php (added)
-
tags/1.5.1/vendor/composer/autoload_static.php (added)
-
tags/1.5.1/vendor/composer/installed.json (added)
-
tags/1.5.1/vendor/composer/installed.php (added)
-
tags/1.5.1/vendor/composer/platform_check.php (added)
-
tags/1.5.1/vendor/freemius (added)
-
tags/1.5.1/vendor/freemius/LICENSE.txt (added)
-
tags/1.5.1/vendor/freemius/README.md (added)
-
tags/1.5.1/vendor/freemius/assets (added)
-
tags/1.5.1/vendor/freemius/assets/css (added)
-
tags/1.5.1/vendor/freemius/assets/css/admin (added)
-
tags/1.5.1/vendor/freemius/assets/css/admin/account.css (added)
-
tags/1.5.1/vendor/freemius/assets/css/admin/add-ons.css (added)
-
tags/1.5.1/vendor/freemius/assets/css/admin/affiliation.css (added)
-
tags/1.5.1/vendor/freemius/assets/css/admin/checkout.css (added)
-
tags/1.5.1/vendor/freemius/assets/css/admin/clone-resolution.css (added)
-
tags/1.5.1/vendor/freemius/assets/css/admin/common.css (added)
-
tags/1.5.1/vendor/freemius/assets/css/admin/connect.css (added)
-
tags/1.5.1/vendor/freemius/assets/css/admin/debug.css (added)
-
tags/1.5.1/vendor/freemius/assets/css/admin/dialog-boxes.css (added)
-
tags/1.5.1/vendor/freemius/assets/css/admin/gdpr-optin-notice.css (added)
-
tags/1.5.1/vendor/freemius/assets/css/admin/index.php (added)
-
tags/1.5.1/vendor/freemius/assets/css/admin/optout.css (added)
-
tags/1.5.1/vendor/freemius/assets/css/admin/plugins.css (added)
-
tags/1.5.1/vendor/freemius/assets/css/customizer.css (added)
-
tags/1.5.1/vendor/freemius/assets/css/index.php (added)
-
tags/1.5.1/vendor/freemius/assets/img (added)
-
tags/1.5.1/vendor/freemius/assets/img/askany.png (added)
-
tags/1.5.1/vendor/freemius/assets/img/index.php (added)
-
tags/1.5.1/vendor/freemius/assets/img/plugin-icon.png (added)
-
tags/1.5.1/vendor/freemius/assets/img/theme-icon.png (added)
-
tags/1.5.1/vendor/freemius/assets/index.php (added)
-
tags/1.5.1/vendor/freemius/assets/js (added)
-
tags/1.5.1/vendor/freemius/assets/js/index.php (added)
-
tags/1.5.1/vendor/freemius/assets/js/jquery.form.js (added)
-
tags/1.5.1/vendor/freemius/assets/js/nojquery.ba-postmessage.js (added)
-
tags/1.5.1/vendor/freemius/assets/js/postmessage.js (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/14fb1bd5b7c41648488b06147f50a0dc.svg (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/178afa6030e76635dbe835e111d2c507.png (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/27b5a722a5553d9de0170325267fccec.png (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/4375c4a3ddc6f637c2ab9a2d7220f91e.png (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/4529cac82a2d1f300d3c4702b7b5e8f3.svg (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/5480ed23b199531a8cbc05924f26952b.png (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/b4f3b958f4a019862d81b15f3f8eee3a.svg (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/c03f665db27af43971565560adfba594.png (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/cb5fc4f6ec7ada72e986f6e7dde365bf.png (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/dd89563360f0272635c8f0ab7d7f1402.png (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/e366d70661d8ad2493bd6afbd779f125.png (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/f18006f6535a1a6e9c6bfbffafe6f18a.svg (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/f3aac72a8e63997d6bb888f816457e9b.png (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/f928f1be99776af83e8e6be4baf8ffe7.svg (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/fde48e4609a6ddc11d639fc2421f2afd.png (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/freemius-pricing.js (added)
-
tags/1.5.1/vendor/freemius/assets/js/pricing/freemius-pricing.js.LICENSE.txt (added)
-
tags/1.5.1/vendor/freemius/config.php (added)
-
tags/1.5.1/vendor/freemius/includes (added)
-
tags/1.5.1/vendor/freemius/includes/class-freemius-abstract.php (added)
-
tags/1.5.1/vendor/freemius/includes/class-freemius.php (added)
-
tags/1.5.1/vendor/freemius/includes/class-fs-admin-notices.php (added)
-
tags/1.5.1/vendor/freemius/includes/class-fs-api.php (added)
-
tags/1.5.1/vendor/freemius/includes/class-fs-garbage-collector.php (added)
-
tags/1.5.1/vendor/freemius/includes/class-fs-lock.php (added)
-
tags/1.5.1/vendor/freemius/includes/class-fs-logger.php (added)
-
tags/1.5.1/vendor/freemius/includes/class-fs-options.php (added)
-
tags/1.5.1/vendor/freemius/includes/class-fs-plugin-updater.php (added)
-
tags/1.5.1/vendor/freemius/includes/class-fs-security.php (added)
-
tags/1.5.1/vendor/freemius/includes/class-fs-storage.php (added)
-
tags/1.5.1/vendor/freemius/includes/class-fs-user-lock.php (added)
-
tags/1.5.1/vendor/freemius/includes/customizer (added)
-
tags/1.5.1/vendor/freemius/includes/customizer/class-fs-customizer-support-section.php (added)
-
tags/1.5.1/vendor/freemius/includes/customizer/class-fs-customizer-upsell-control.php (added)
-
tags/1.5.1/vendor/freemius/includes/customizer/index.php (added)
-
tags/1.5.1/vendor/freemius/includes/debug (added)
-
tags/1.5.1/vendor/freemius/includes/debug/class-fs-debug-bar-panel.php (added)
-
tags/1.5.1/vendor/freemius/includes/debug/debug-bar-start.php (added)
-
tags/1.5.1/vendor/freemius/includes/debug/index.php (added)
-
tags/1.5.1/vendor/freemius/includes/entities (added)
-
tags/1.5.1/vendor/freemius/includes/entities/class-fs-affiliate-terms.php (added)
-
tags/1.5.1/vendor/freemius/includes/entities/class-fs-affiliate.php (added)
-
tags/1.5.1/vendor/freemius/includes/entities/class-fs-billing.php (added)
-
tags/1.5.1/vendor/freemius/includes/entities/class-fs-entity.php (added)
-
tags/1.5.1/vendor/freemius/includes/entities/class-fs-payment.php (added)
-
tags/1.5.1/vendor/freemius/includes/entities/class-fs-plugin-info.php (added)
-
tags/1.5.1/vendor/freemius/includes/entities/class-fs-plugin-license.php (added)
-
tags/1.5.1/vendor/freemius/includes/entities/class-fs-plugin-plan.php (added)
-
tags/1.5.1/vendor/freemius/includes/entities/class-fs-plugin-tag.php (added)
-
tags/1.5.1/vendor/freemius/includes/entities/class-fs-plugin.php (added)
-
tags/1.5.1/vendor/freemius/includes/entities/class-fs-pricing.php (added)
-
tags/1.5.1/vendor/freemius/includes/entities/class-fs-scope-entity.php (added)
-
tags/1.5.1/vendor/freemius/includes/entities/class-fs-site.php (added)
-
tags/1.5.1/vendor/freemius/includes/entities/class-fs-subscription.php (added)
-
tags/1.5.1/vendor/freemius/includes/entities/class-fs-user.php (added)
-
tags/1.5.1/vendor/freemius/includes/entities/index.php (added)
-
tags/1.5.1/vendor/freemius/includes/fs-core-functions.php (added)
-
tags/1.5.1/vendor/freemius/includes/fs-essential-functions.php (added)
-
tags/1.5.1/vendor/freemius/includes/fs-html-escaping-functions.php (added)
-
tags/1.5.1/vendor/freemius/includes/fs-plugin-info-dialog.php (added)
-
tags/1.5.1/vendor/freemius/includes/index.php (added)
-
tags/1.5.1/vendor/freemius/includes/l10n.php (added)
-
tags/1.5.1/vendor/freemius/includes/managers (added)
-
tags/1.5.1/vendor/freemius/includes/managers/class-fs-admin-menu-manager.php (added)
-
tags/1.5.1/vendor/freemius/includes/managers/class-fs-admin-notice-manager.php (added)
-
tags/1.5.1/vendor/freemius/includes/managers/class-fs-cache-manager.php (added)
-
tags/1.5.1/vendor/freemius/includes/managers/class-fs-checkout-manager.php (added)
-
tags/1.5.1/vendor/freemius/includes/managers/class-fs-clone-manager.php (added)
-
tags/1.5.1/vendor/freemius/includes/managers/class-fs-contact-form-manager.php (added)
-
tags/1.5.1/vendor/freemius/includes/managers/class-fs-debug-manager.php (added)
-
tags/1.5.1/vendor/freemius/includes/managers/class-fs-gdpr-manager.php (added)
-
tags/1.5.1/vendor/freemius/includes/managers/class-fs-key-value-storage.php (added)
-
tags/1.5.1/vendor/freemius/includes/managers/class-fs-license-manager.php (added)
-
tags/1.5.1/vendor/freemius/includes/managers/class-fs-option-manager.php (added)
-
tags/1.5.1/vendor/freemius/includes/managers/class-fs-permission-manager.php (added)
-
tags/1.5.1/vendor/freemius/includes/managers/class-fs-plan-manager.php (added)
-
tags/1.5.1/vendor/freemius/includes/managers/class-fs-plugin-manager.php (added)
-
tags/1.5.1/vendor/freemius/includes/managers/index.php (added)
-
tags/1.5.1/vendor/freemius/includes/sdk (added)
-
tags/1.5.1/vendor/freemius/includes/sdk/Exceptions (added)
-
tags/1.5.1/vendor/freemius/includes/sdk/Exceptions/ArgumentNotExistException.php (added)
-
tags/1.5.1/vendor/freemius/includes/sdk/Exceptions/EmptyArgumentException.php (added)
-
tags/1.5.1/vendor/freemius/includes/sdk/Exceptions/Exception.php (added)
-
tags/1.5.1/vendor/freemius/includes/sdk/Exceptions/InvalidArgumentException.php (added)
-
tags/1.5.1/vendor/freemius/includes/sdk/Exceptions/OAuthException.php (added)
-
tags/1.5.1/vendor/freemius/includes/sdk/Exceptions/index.php (added)
-
tags/1.5.1/vendor/freemius/includes/sdk/FreemiusBase.php (added)
-
tags/1.5.1/vendor/freemius/includes/sdk/FreemiusWordPress.php (added)
-
tags/1.5.1/vendor/freemius/includes/sdk/LICENSE.txt (added)
-
tags/1.5.1/vendor/freemius/includes/sdk/index.php (added)
-
tags/1.5.1/vendor/freemius/includes/supplements (added)
-
tags/1.5.1/vendor/freemius/includes/supplements/fs-essential-functions-1.1.7.1.php (added)
-
tags/1.5.1/vendor/freemius/includes/supplements/fs-essential-functions-2.2.1.php (added)
-
tags/1.5.1/vendor/freemius/includes/supplements/fs-migration-2.5.1.php (added)
-
tags/1.5.1/vendor/freemius/includes/supplements/index.php (added)
-
tags/1.5.1/vendor/freemius/index.php (added)
-
tags/1.5.1/vendor/freemius/languages (added)
-
tags/1.5.1/vendor/freemius/languages/freemius-cs_CZ.mo (added)
-
tags/1.5.1/vendor/freemius/languages/freemius-da_DK.mo (added)
-
tags/1.5.1/vendor/freemius/languages/freemius-de_DE.mo (added)
-
tags/1.5.1/vendor/freemius/languages/freemius-es_ES.mo (added)
-
tags/1.5.1/vendor/freemius/languages/freemius-fr_FR.mo (added)
-
tags/1.5.1/vendor/freemius/languages/freemius-he_IL.mo (added)
-
tags/1.5.1/vendor/freemius/languages/freemius-hu_HU.mo (added)
-
tags/1.5.1/vendor/freemius/languages/freemius-it_IT.mo (added)
-
tags/1.5.1/vendor/freemius/languages/freemius-ja.mo (added)
-
tags/1.5.1/vendor/freemius/languages/freemius-nl_NL.mo (added)
-
tags/1.5.1/vendor/freemius/languages/freemius-ru_RU.mo (added)
-
tags/1.5.1/vendor/freemius/languages/freemius-ta.mo (added)
-
tags/1.5.1/vendor/freemius/languages/freemius-zh_CN.mo (added)
-
tags/1.5.1/vendor/freemius/languages/freemius.pot (added)
-
tags/1.5.1/vendor/freemius/languages/index.php (added)
-
tags/1.5.1/vendor/freemius/require.php (added)
-
tags/1.5.1/vendor/freemius/start.php (added)
-
tags/1.5.1/vendor/freemius/templates (added)
-
tags/1.5.1/vendor/freemius/templates/account (added)
-
tags/1.5.1/vendor/freemius/templates/account.php (added)
-
tags/1.5.1/vendor/freemius/templates/account/billing.php (added)
-
tags/1.5.1/vendor/freemius/templates/account/index.php (added)
-
tags/1.5.1/vendor/freemius/templates/account/partials (added)
-
tags/1.5.1/vendor/freemius/templates/account/partials/activate-license-button.php (added)
-
tags/1.5.1/vendor/freemius/templates/account/partials/addon.php (added)
-
tags/1.5.1/vendor/freemius/templates/account/partials/deactivate-license-button.php (added)
-
tags/1.5.1/vendor/freemius/templates/account/partials/disconnect-button.php (added)
-
tags/1.5.1/vendor/freemius/templates/account/partials/index.php (added)
-
tags/1.5.1/vendor/freemius/templates/account/partials/site.php (added)
-
tags/1.5.1/vendor/freemius/templates/account/payments.php (added)
-
tags/1.5.1/vendor/freemius/templates/add-ons.php (added)
-
tags/1.5.1/vendor/freemius/templates/add-trial-to-pricing.php (added)
-
tags/1.5.1/vendor/freemius/templates/admin-notice.php (added)
-
tags/1.5.1/vendor/freemius/templates/ajax-loader.php (added)
-
tags/1.5.1/vendor/freemius/templates/api-connectivity-message-js.php (added)
-
tags/1.5.1/vendor/freemius/templates/auto-installation.php (added)
-
tags/1.5.1/vendor/freemius/templates/checkout (added)
-
tags/1.5.1/vendor/freemius/templates/checkout.php (added)
-
tags/1.5.1/vendor/freemius/templates/checkout/frame.php (added)
-
tags/1.5.1/vendor/freemius/templates/checkout/process-redirect.php (added)
-
tags/1.5.1/vendor/freemius/templates/checkout/redirect.php (added)
-
tags/1.5.1/vendor/freemius/templates/clone-resolution-js.php (added)
-
tags/1.5.1/vendor/freemius/templates/connect (added)
-
tags/1.5.1/vendor/freemius/templates/connect.php (added)
-
tags/1.5.1/vendor/freemius/templates/connect/index.php (added)
-
tags/1.5.1/vendor/freemius/templates/connect/permission.php (added)
-
tags/1.5.1/vendor/freemius/templates/connect/permissions-group.php (added)
-
tags/1.5.1/vendor/freemius/templates/contact.php (added)
-
tags/1.5.1/vendor/freemius/templates/debug (added)
-
tags/1.5.1/vendor/freemius/templates/debug.php (added)
-
tags/1.5.1/vendor/freemius/templates/debug/api-calls.php (added)
-
tags/1.5.1/vendor/freemius/templates/debug/index.php (added)
-
tags/1.5.1/vendor/freemius/templates/debug/logger.php (added)
-
tags/1.5.1/vendor/freemius/templates/debug/plugins-themes-sync.php (added)
-
tags/1.5.1/vendor/freemius/templates/debug/scheduled-crons.php (added)
-
tags/1.5.1/vendor/freemius/templates/email.php (added)
-
tags/1.5.1/vendor/freemius/templates/forms (added)
-
tags/1.5.1/vendor/freemius/templates/forms/affiliation.php (added)
-
tags/1.5.1/vendor/freemius/templates/forms/data-debug-mode.php (added)
-
tags/1.5.1/vendor/freemius/templates/forms/deactivation (added)
-
tags/1.5.1/vendor/freemius/templates/forms/deactivation/contact.php (added)
-
tags/1.5.1/vendor/freemius/templates/forms/deactivation/form.php (added)
-
tags/1.5.1/vendor/freemius/templates/forms/deactivation/index.php (added)
-
tags/1.5.1/vendor/freemius/templates/forms/deactivation/retry-skip.php (added)
-
tags/1.5.1/vendor/freemius/templates/forms/email-address-update.php (added)
-
tags/1.5.1/vendor/freemius/templates/forms/index.php (added)
-
tags/1.5.1/vendor/freemius/templates/forms/license-activation.php (added)
-
tags/1.5.1/vendor/freemius/templates/forms/optout.php (added)
-
tags/1.5.1/vendor/freemius/templates/forms/premium-versions-upgrade-handler.php (added)
-
tags/1.5.1/vendor/freemius/templates/forms/premium-versions-upgrade-metadata.php (added)
-
tags/1.5.1/vendor/freemius/templates/forms/resend-key.php (added)
-
tags/1.5.1/vendor/freemius/templates/forms/subscription-cancellation.php (added)
-
tags/1.5.1/vendor/freemius/templates/forms/trial-start.php (added)
-
tags/1.5.1/vendor/freemius/templates/forms/user-change.php (added)
-
tags/1.5.1/vendor/freemius/templates/gdpr-optin-js.php (added)
-
tags/1.5.1/vendor/freemius/templates/index.php (added)
-
tags/1.5.1/vendor/freemius/templates/js (added)
-
tags/1.5.1/vendor/freemius/templates/js/index.php (added)
-
tags/1.5.1/vendor/freemius/templates/js/jquery.content-change.php (added)
-
tags/1.5.1/vendor/freemius/templates/js/open-license-activation.php (added)
-
tags/1.5.1/vendor/freemius/templates/js/permissions.php (added)
-
tags/1.5.1/vendor/freemius/templates/js/style-premium-theme.php (added)
-
tags/1.5.1/vendor/freemius/templates/partials (added)
-
tags/1.5.1/vendor/freemius/templates/partials/index.php (added)
-
tags/1.5.1/vendor/freemius/templates/partials/network-activation.php (added)
-
tags/1.5.1/vendor/freemius/templates/plugin-icon.php (added)
-
tags/1.5.1/vendor/freemius/templates/plugin-info (added)
-
tags/1.5.1/vendor/freemius/templates/plugin-info/description.php (added)
-
tags/1.5.1/vendor/freemius/templates/plugin-info/features.php (added)
-
tags/1.5.1/vendor/freemius/templates/plugin-info/index.php (added)
-
tags/1.5.1/vendor/freemius/templates/plugin-info/screenshots.php (added)
-
tags/1.5.1/vendor/freemius/templates/pricing.php (added)
-
tags/1.5.1/vendor/freemius/templates/secure-https-header.php (added)
-
tags/1.5.1/vendor/freemius/templates/sticky-admin-notice-js.php (added)
-
tags/1.5.1/vendor/freemius/templates/tabs-capture-js.php (added)
-
tags/1.5.1/vendor/freemius/templates/tabs.php (added)
-
tags/1.5.1/vendor/smalot (added)
-
tags/1.5.1/vendor/smalot/pdfparser (added)
-
tags/1.5.1/vendor/smalot/pdfparser/.github (added)
-
tags/1.5.1/vendor/smalot/pdfparser/.github/ISSUE_TEMPLATE (added)
-
tags/1.5.1/vendor/smalot/pdfparser/.github/ISSUE_TEMPLATE/incorrect-parsing.md (added)
-
tags/1.5.1/vendor/smalot/pdfparser/.github/pull_request_template.md (added)
-
tags/1.5.1/vendor/smalot/pdfparser/.github/workflows (added)
-
tags/1.5.1/vendor/smalot/pdfparser/.github/workflows/coding-standards.yml (added)
-
tags/1.5.1/vendor/smalot/pdfparser/.github/workflows/continuous-integration.yml (added)
-
tags/1.5.1/vendor/smalot/pdfparser/.github/workflows/performance.yml (added)
-
tags/1.5.1/vendor/smalot/pdfparser/.php-cs-fixer.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/CONTRIBUTING.md (added)
-
tags/1.5.1/vendor/smalot/pdfparser/LICENSE.txt (added)
-
tags/1.5.1/vendor/smalot/pdfparser/Makefile (added)
-
tags/1.5.1/vendor/smalot/pdfparser/README.md (added)
-
tags/1.5.1/vendor/smalot/pdfparser/alt_autoload.php-dist (added)
-
tags/1.5.1/vendor/smalot/pdfparser/composer.json (added)
-
tags/1.5.1/vendor/smalot/pdfparser/doc (added)
-
tags/1.5.1/vendor/smalot/pdfparser/doc/CustomConfig.md (added)
-
tags/1.5.1/vendor/smalot/pdfparser/doc/Developer.md (added)
-
tags/1.5.1/vendor/smalot/pdfparser/doc/Usage.md (added)
-
tags/1.5.1/vendor/smalot/pdfparser/phpunit-windows.xml (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Config.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Document.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element/ElementArray.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element/ElementBoolean.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element/ElementDate.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element/ElementHexa.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element/ElementMissing.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element/ElementName.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element/ElementNull.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element/ElementNumeric.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element/ElementString.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element/ElementStruct.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Element/ElementXRef.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Encoding (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Encoding.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Encoding/AbstractEncoding.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Encoding/EncodingLocator.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Encoding/ISOLatin1Encoding.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Encoding/ISOLatin9Encoding.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Encoding/MacRomanEncoding.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Encoding/PDFDocEncoding.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Encoding/PostScriptGlyphs.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Encoding/StandardEncoding.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Encoding/WinAnsiEncoding.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Exception (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Exception/EmptyPdfException.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Exception/EncodingNotFoundException.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Exception/InvalidDictionaryObjectException.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Exception/MissingCatalogException.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Exception/MissingPdfHeaderException.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Exception/NotImplementedException.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Font (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Font.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Font/FontCIDFontType0.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Font/FontCIDFontType2.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Font/FontTrueType.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Font/FontType0.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Font/FontType1.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Font/FontType3.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Header.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/PDFObject.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Page.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Pages.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/Parser.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/RawData (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/RawData/FilterHelper.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/RawData/RawDataParser.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/XObject (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/XObject/Form.php (added)
-
tags/1.5.1/vendor/smalot/pdfparser/src/Smalot/PdfParser/XObject/Image.php (added)
-
tags/1.5.1/vendor/symfony (added)
-
tags/1.5.1/vendor/symfony/polyfill-mbstring (added)
-
tags/1.5.1/vendor/symfony/polyfill-mbstring/LICENSE (added)
-
tags/1.5.1/vendor/symfony/polyfill-mbstring/Mbstring.php (added)
-
tags/1.5.1/vendor/symfony/polyfill-mbstring/README.md (added)
-
tags/1.5.1/vendor/symfony/polyfill-mbstring/Resources (added)
-
tags/1.5.1/vendor/symfony/polyfill-mbstring/Resources/unidata (added)
-
tags/1.5.1/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php (added)
-
tags/1.5.1/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php (added)
-
tags/1.5.1/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php (added)
-
tags/1.5.1/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php (added)
-
tags/1.5.1/vendor/symfony/polyfill-mbstring/bootstrap.php (added)
-
tags/1.5.1/vendor/symfony/polyfill-mbstring/bootstrap80.php (added)
-
tags/1.5.1/vendor/symfony/polyfill-mbstring/composer.json (added)
-
trunk/askany.php (modified) (2 diffs)
-
trunk/includes/class-admin-pages.php (modified) (1 diff)
-
trunk/includes/class-ajax-handler.php (modified) (39 diffs)
-
trunk/includes/class-pdf-upload-handler.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (5 diffs)
-
trunk/templates/admin-api-stats.php (modified) (2 diffs)
-
trunk/templates/admin-chat-logs.php (modified) (2 diffs)
-
trunk/templates/admin-pdf-import.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
askany/trunk/askany.php
r3393344 r3393775 4 4 * Plugin URI: https://wordpress.org/plugins/askany 5 5 * Description: Askany is AI-powered chat assistant using DeepSeek API and OpenAI to answer questions based on WordPress content and imported PDFs. 6 * Version: 1.5. 06 * Version: 1.5.1 7 7 * Requires at least: 5.9 8 8 * Requires PHP: 7.4 9 * Author: Michaelbar10 * Author URI: https://profiles.wordpress.org/ michaelbar9 * Author: wpazleen 10 * Author URI: https://profiles.wordpress.org/wpazleen 11 11 * Text Domain: askany 12 12 * Domain Path: /languages/ … … 66 66 67 67 // Define plugin constants. 68 define('ASKANY_VERSION', '1.5. 0');68 define('ASKANY_VERSION', '1.5.1'); 69 69 define('ASKANY_PLUGIN_FILE', __FILE__); 70 70 define('ASKANY_PLUGIN_DIR', plugin_dir_path(__FILE__)); -
askany/trunk/includes/class-admin-pages.php
r3393344 r3393775 273 273 wp_localize_script('askany-admin', 'askanyAdmin', array( 274 274 'ajaxUrl' => admin_url('admin-ajax.php'), 275 'nonce' => wp_create_nonce('askany -admin-nonce'),275 'nonce' => wp_create_nonce('askany_chat_nonce'), 276 276 'restUrl' => rest_url(), 277 277 'restNonce' => wp_create_nonce('wp_rest'), -
askany/trunk/includes/class-ajax-handler.php
r3393344 r3393775 891 891 */ 892 892 public function save_settings() { 893 check_ajax_referer('askany -admin-nonce', 'nonce');893 check_ajax_referer('askany_chat_nonce', 'nonce'); 894 894 895 895 if ( ! current_user_can('manage_options') ) { … … 952 952 */ 953 953 public function reindex_content() { 954 check_ajax_referer('askany -admin-nonce', 'nonce');954 check_ajax_referer('askany_chat_nonce', 'nonce'); 955 955 956 956 if ( ! current_user_can('manage_options') ) { … … 979 979 */ 980 980 public function add_qa_pair() { 981 check_ajax_referer('askany -admin-nonce', 'nonce');981 check_ajax_referer('askany_chat_nonce', 'nonce'); 982 982 983 983 if ( ! current_user_can('manage_options') ) { … … 1038 1038 */ 1039 1039 public function update_qa_pair() { 1040 check_ajax_referer('askany -admin-nonce', 'nonce');1040 check_ajax_referer('askany_chat_nonce', 'nonce'); 1041 1041 1042 1042 if ( ! current_user_can('manage_options') ) { … … 1077 1077 */ 1078 1078 public function delete_qa_pair() { 1079 check_ajax_referer('askany -admin-nonce', 'nonce');1079 check_ajax_referer('askany_chat_nonce', 'nonce'); 1080 1080 1081 1081 if ( ! current_user_can('manage_options') ) { … … 1114 1114 */ 1115 1115 public function get_qa_pair() { 1116 check_ajax_referer('askany -admin-nonce', 'nonce');1116 check_ajax_referer('askany_chat_nonce', 'nonce'); 1117 1117 1118 1118 if ( ! current_user_can('manage_options') ) { … … 1150 1150 */ 1151 1151 public function process_pdf() { 1152 check_ajax_referer( 'askany -admin-nonce', 'nonce' );1152 check_ajax_referer( 'askany_chat_nonce', 'nonce' ); 1153 1153 1154 1154 if ( ! current_user_can( 'manage_options' ) ) { … … 1204 1204 */ 1205 1205 public function delete_pdf() { 1206 check_ajax_referer('askany -admin-nonce', 'nonce');1206 check_ajax_referer('askany_chat_nonce', 'nonce'); 1207 1207 1208 1208 if ( ! current_user_can('manage_options') ) { … … 1236 1236 */ 1237 1237 public function clear_chat_all_history() { 1238 check_ajax_referer('askany -admin-nonce', 'nonce');1238 check_ajax_referer('askany_chat_nonce', 'nonce'); 1239 1239 1240 1240 if ( ! current_user_can('manage_options') ) { … … 1260 1260 */ 1261 1261 public function get_provider_models() { 1262 check_ajax_referer('askany -admin-nonce', 'nonce');1262 check_ajax_referer('askany_chat_nonce', 'nonce'); 1263 1263 1264 1264 if ( ! current_user_can('manage_options') ) { … … 1292 1292 */ 1293 1293 public function get_provider_settings() { 1294 check_ajax_referer('askany -admin-nonce', 'nonce');1294 check_ajax_referer('askany_chat_nonce', 'nonce'); 1295 1295 1296 1296 if ( ! current_user_can('manage_options') ) { … … 1350 1350 */ 1351 1351 public function test_api_connection() { 1352 check_ajax_referer('askany -admin-nonce', 'nonce');1352 check_ajax_referer('askany_chat_nonce', 'nonce'); 1353 1353 1354 1354 if ( ! current_user_can('manage_options') ) { … … 1396 1396 */ 1397 1397 public function add_agent() { 1398 check_ajax_referer('askany -admin-nonce', 'nonce');1398 check_ajax_referer('askany_chat_nonce', 'nonce'); 1399 1399 1400 1400 if ( ! current_user_can('manage_options') ) { … … 1444 1444 */ 1445 1445 public function remove_agent() { 1446 check_ajax_referer('askany -admin-nonce', 'nonce');1446 check_ajax_referer('askany_chat_nonce', 'nonce'); 1447 1447 1448 1448 if ( ! current_user_can('manage_options') ) { … … 1471 1471 */ 1472 1472 public function get_chat_sessions() { 1473 check_ajax_referer('askany -admin-nonce', 'nonce');1473 check_ajax_referer('askany_chat_nonce', 'nonce'); 1474 1474 1475 1475 if ( ! current_user_can('manage_options') ) { … … 1488 1488 */ 1489 1489 public function get_chat_messages() { 1490 check_ajax_referer('askany -admin-nonce', 'nonce');1490 check_ajax_referer('askany_chat_nonce', 'nonce'); 1491 1491 1492 1492 if ( ! current_user_can('manage_options') ) { … … 1681 1681 */ 1682 1682 public function assign_agent() { 1683 check_ajax_referer('askany -admin-nonce', 'nonce');1683 check_ajax_referer('askany_chat_nonce', 'nonce'); 1684 1684 1685 1685 if ( ! current_user_can('manage_options') ) { … … 1742 1742 */ 1743 1743 public function release_agent() { 1744 check_ajax_referer('askany -admin-nonce', 'nonce');1744 check_ajax_referer('askany_chat_nonce', 'nonce'); 1745 1745 1746 1746 if ( ! current_user_can('manage_options') ) { … … 1776 1776 */ 1777 1777 public function send_agent_message() { 1778 check_ajax_referer('askany -admin-nonce', 'nonce');1778 check_ajax_referer('askany_chat_nonce', 'nonce'); 1779 1779 1780 1780 if ( ! current_user_can('manage_options') ) { … … 1860 1860 if ($is_admin_request) { 1861 1861 // For admin requests, check admin nonce 1862 $nonce_valid = wp_verify_nonce($nonce, 'askany -admin-nonce');1862 $nonce_valid = wp_verify_nonce($nonce, 'askany_chat_nonce'); 1863 1863 } else { 1864 1864 // For frontend requests, check chat nonce … … 1911 1911 if ($is_admin_request) { 1912 1912 // For admin requests, check admin nonce 1913 $nonce_valid = wp_verify_nonce($nonce, 'askany -admin-nonce');1913 $nonce_valid = wp_verify_nonce($nonce, 'askany_chat_nonce'); 1914 1914 } else { 1915 1915 // For frontend requests, check chat nonce … … 1954 1954 */ 1955 1955 public function poll_messages() { 1956 check_ajax_referer('askany -admin-nonce', 'nonce');1956 check_ajax_referer('askany_chat_nonce', 'nonce'); 1957 1957 1958 1958 if ( ! current_user_can('manage_options') ) { … … 1989 1989 if ( $type === 'toggle' ) { 1990 1990 // For toggle operations, use the admin nonce 1991 check_ajax_referer('askany -admin-nonce', 'nonce');1991 check_ajax_referer('askany_chat_nonce', 'nonce'); 1992 1992 } else { 1993 1993 // For form submissions, use the home settings nonce … … 2048 2048 */ 2049 2049 public function save_home_faq() { 2050 check_ajax_referer('askany -admin-nonce', 'nonce');2050 check_ajax_referer('askany_chat_nonce', 'nonce'); 2051 2051 2052 2052 if ( ! current_user_can('manage_options') ) { … … 2084 2084 */ 2085 2085 public function get_home_faq() { 2086 check_ajax_referer('askany -admin-nonce', 'nonce');2086 check_ajax_referer('askany_chat_nonce', 'nonce'); 2087 2087 2088 2088 if ( ! current_user_can('manage_options') ) { … … 2111 2111 */ 2112 2112 public function delete_home_faq() { 2113 check_ajax_referer('askany -admin-nonce', 'nonce');2113 check_ajax_referer('askany_chat_nonce', 'nonce'); 2114 2114 2115 2115 if ( ! current_user_can('manage_options') ) { … … 2138 2138 */ 2139 2139 public function toggle_home_faq() { 2140 check_ajax_referer('askany -admin-nonce', 'nonce');2140 check_ajax_referer('askany_chat_nonce', 'nonce'); 2141 2141 2142 2142 if ( ! current_user_can('manage_options') ) { … … 2166 2166 */ 2167 2167 public function save_home_link() { 2168 check_ajax_referer('askany -admin-nonce', 'nonce');2168 check_ajax_referer('askany_chat_nonce', 'nonce'); 2169 2169 2170 2170 if ( ! current_user_can('manage_options') ) { … … 2203 2203 */ 2204 2204 public function get_home_link() { 2205 check_ajax_referer('askany -admin-nonce', 'nonce');2205 check_ajax_referer('askany_chat_nonce', 'nonce'); 2206 2206 2207 2207 if ( ! current_user_can('manage_options') ) { … … 2230 2230 */ 2231 2231 public function delete_home_link() { 2232 check_ajax_referer('askany -admin-nonce', 'nonce');2232 check_ajax_referer('askany_chat_nonce', 'nonce'); 2233 2233 2234 2234 if ( ! current_user_can('manage_options') ) { … … 2257 2257 */ 2258 2258 public function toggle_home_link() { 2259 check_ajax_referer('askany -admin-nonce', 'nonce');2259 check_ajax_referer('askany_chat_nonce', 'nonce'); 2260 2260 2261 2261 if ( ! current_user_can('manage_options') ) { … … 2285 2285 */ 2286 2286 public function clear_chat_history() { 2287 check_ajax_referer('askany -admin-nonce', 'nonce');2287 check_ajax_referer('askany_chat_nonce', 'nonce'); 2288 2288 2289 2289 if ( ! current_user_can('manage_options') ) { … … 2312 2312 */ 2313 2313 public function delete_user_session() { 2314 check_ajax_referer('askany -admin-nonce', 'nonce');2314 check_ajax_referer('askany_chat_nonce', 'nonce'); 2315 2315 2316 2316 if ( ! current_user_can('manage_options') ) { … … 2377 2377 */ 2378 2378 public function get_api_stats() { 2379 check_ajax_referer('askany -admin-nonce', 'nonce');2379 check_ajax_referer('askany_chat_nonce', 'nonce'); 2380 2380 2381 2381 if ( ! current_user_can('manage_options') ) { … … 2402 2402 */ 2403 2403 public function refresh_api_stats() { 2404 check_ajax_referer('askany -admin-nonce', 'nonce');2404 check_ajax_referer('askany_chat_nonce', 'nonce'); 2405 2405 2406 2406 if ( ! current_user_can('manage_options') ) { … … 2431 2431 */ 2432 2432 public function get_paginated_errors() { 2433 check_ajax_referer('askany -admin-nonce', 'nonce');2433 check_ajax_referer('askany_chat_nonce', 'nonce'); 2434 2434 2435 2435 if ( ! current_user_can('manage_options') ) { … … 2454 2454 */ 2455 2455 public function clear_api_errors() { 2456 check_ajax_referer('askany -admin-nonce', 'nonce');2456 check_ajax_referer('askany_chat_nonce', 'nonce'); 2457 2457 2458 2458 if ( ! current_user_can('manage_options') ) { … … 2486 2486 */ 2487 2487 public function get_paginated_chat_logs() { 2488 check_ajax_referer('askany -admin-nonce', 'nonce');2488 check_ajax_referer('askany_chat_nonce', 'nonce'); 2489 2489 2490 2490 if ( ! current_user_can('manage_options') ) { … … 2509 2509 */ 2510 2510 public function clear_chat_logs() { 2511 check_ajax_referer('askany -admin-nonce', 'nonce');2511 check_ajax_referer('askany_chat_nonce', 'nonce'); 2512 2512 2513 2513 if ( ! current_user_can('manage_options') ) { -
askany/trunk/includes/class-pdf-upload-handler.php
r3296689 r3393775 72 72 public function handle_pdf_upload() { 73 73 // Check nonce for security. 74 if ( ! isset($_POST['nonce']) || ! wp_verify_nonce(sanitize_text_field( wp_unslash($_POST['nonce'])), 'askany -admin-nonce') ) {74 if ( ! isset($_POST['nonce']) || ! wp_verify_nonce(sanitize_text_field( wp_unslash($_POST['nonce'])), 'askany_chat_nonce') ) { 75 75 wp_send_json_error(array( 'message' => 'Security check failed.' ), 403); 76 76 } … … 333 333 public function handle_pdf_delete() { 334 334 // Check nonce for security. 335 if ( ! isset($_POST['nonce']) || ! wp_verify_nonce(sanitize_text_field( wp_unslash($_POST['nonce'])), 'askany -admin-nonce') ) {335 if ( ! isset($_POST['nonce']) || ! wp_verify_nonce(sanitize_text_field( wp_unslash($_POST['nonce'])), 'askany_chat_nonce') ) { 336 336 wp_send_json_error(array( 'message' => 'Security check failed.' ), 403); 337 337 } -
askany/trunk/readme.txt
r3393344 r3393775 1 1 === AskAny - AI-Powered Chat Assistant === 2 Contributors: michaelbar,wpazleen2 Contributors: wpazleen 3 3 Tags: ai chat, chatbot, customer support, woocommerce, pdf search, openai, deepseek 4 4 Requires at least: 5.9 5 5 Tested up to: 6.8 6 Stable tag: 1.5. 06 Stable tag: 1.5.1 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 10 11 Transform your WordPress site with AI-powered assistant f eaturing with SSE technology for instant responses and unmatched performance.11 Transform your WordPress site with AI-powered assistant for instant responses and unmatched performance. 12 12 13 13 == Description == 14 14 15 **AskAny - AI Chatbot for WooCommerce & WordPress** is the most advanced **AI chat** assistant featuring breakthrough **SSE technology** . Powered by **OpenAI** and **DeepSeek**, this revolutionary **chatbot** delivers **instant responses**, **reduced server load**, and **seamless communication** that transforms your **customer support** experience.15 **AskAny - AI Chatbot for WooCommerce & WordPress** is the most advanced **AI chat** assistant featuring breakthrough **SSE technology**, powered by **OpenAI**, **DeepSeek**, and **Gemini**. This revolutionary **chatbot** delivers **instant responses**, **reduced server load**, and **seamless communication** that transforms your **customer support** experience. 16 16 17 17 Whether you run a **WooCommerce** store or a content-rich **WordPress** site, AskAny combines **AI chat**, **PDF search**, and contextual understanding to provide the most intelligent **customer support chatbot** experience. … … 19 19 ## Why AskAny Is the Ultimate AI Chatbot for WooCommerce & WordPress 20 20 21 ### 🚀 Revolutionary SSE Technology 22 23 **AskAny delivering: 24 25 - ⚡ **Instant Responses**: 100ms delivery vs 3000ms with traditional plugins 26 - 🔥 **90% Less Server Load**: Eliminates constant polling, dramatically improves performance 27 - 🌐 **True Real-Time Chat**: Messages appear instantly, like WhatsApp or Telegram 28 - 🛡️ **Automatic Fallback**: Seamlessly switches to polling if SSE isn't supported 29 - 📱 **Zero Configuration**: Works out-of-the-box, no server setup required 30 31 **This breakthrough technology makes AskAny 30x faster than any other WordPress chatbot plugin.** 32 33 Managing a website or **WooCommerce** store involves constant customer queries. AskAny uses **OpenAI**, **DeepSeek**, and revolutionary **SSE real-time technology** to automatically handle repetitive questions, product inquiries, and form submissions giving you more time to focus on business. 34 35 ### 💬 24/7 AI Chat Customer Support 36 37 AskAny works like a human agent but smarter and faster. This **AI chatbot** provides real-time **customer support**, understands product catalogs, navigates site content, and offers instant answers even while you sleep. Every **AI chat** response is powered by **OpenAI** or **DeepSeek** and tailored to your website’s content. AskAny offers flexible **customer support** through both **AI chat** and real-time agents. 38 39 - ✅ Assign any registered WordPress user as a **live agent** 40 - ✅ Let agents jump into chats alongside the **AI chatbot** 41 - ✅ Perfect for offering **hybrid support**: human + AI 42 - ✅ On weekends or off-hours, full **AI chat** takes over seamlessly 43 - ✅ Every conversation is powered by **OpenAI** or **DeepSeek** and context-aware 44 45 This dual system ensures users always receive a response whether from a real support agent or the intelligent **AI chatbot**. 46 47 ### 🛍️ Designed for WooCommerce Excellence 48 49 Not just any **chatbot** this is your **AI chat** sales team. It’s fully integrated with **WooCommerce**, allowing users to: 50 51 - Discover products via **AI chat** 52 - See product cards with price, image, and stock info 53 - Add items to cart right from the **chatbot** 54 - Get custom answers based on product data 55 - Reduce pre-sale questions through automated **customer support** 56 57 Whether you're upselling or troubleshooting, AskAny’s **WooCommerce** integration handles it with ease. 58 59 ### 📄 Intelligent PDF Search & Document AI 60 61 AskAny includes powerful **PDF search** features. Upload manuals, guides, or policy documents, and the **AI chatbot** will intelligently extract answers from them. Using **DeepSeek** and **OpenAI**, this makes the plugin ideal for knowledge bases and documentation-heavy sites. 62 63 ### 🧾 Forms Inside the Chatbot (No Page Reload!) 64 65 Connect any form plugin (like Contact Form 7, WPForms, Gravity Forms, Simple Form) directly inside the **AI chat** widget: 66 67 - Capture leads 68 - Get user feedback 69 - Run surveys or polls 70 - Offer support via embedded forms 71 72 All within the same **chatbot** window no popups or redirects. This keeps your users engaged and improves your **customer support** experience. 73 74 ### 🧠 AI Chat That Understands Your Website 75 76 Built specifically for **WordPress**, not just compatible. This **AI chat** assistant can: 77 78 - Understand pages, posts, FAQs 79 - Handle **WooCommerce** products natively 80 - Search content and documents via **PDF search** 81 - Use **OpenAI** or **DeepSeek** for context-aware responses 82 - Let you customize Q&A behavior 83 84 It’s not just a **chatbot**, it’s a full-on **AI chat** system designed for seamless **customer support**. 21 ### ⚡ Revolutionary Real-Time Chat (Industry First!) 22 23 AskAny is the **only AI chatbot** that uses **Server-Sent Events (SSE)** for true real-time performance. 24 25 - 🔥 **90% Less Server Load** — No more heavy polling, ultra-light performance 26 - 🌐 **True Real-Time Messaging** — Replies appear instantly, like WhatsApp or Telegram 27 - 🛡️ **Automatic Fallback Mode** — Smoothly switches to polling if SSE isn’t supported 28 - 📱 **Zero Configuration** — Works instantly, no technical setup needed 29 - 🌍 **External Website Indexing** — Crawl and index **external websites** to feed your AI assistant with extended knowledge 30 31 AskAny delivers **30x faster responses** than traditional chatbot plugins — combining speed, accuracy, and real-time intelligence. 32 33 ## 💬 24/7 AI Chat Support That Never Sleeps 34 35 AskAny acts as a **smart support agent** that’s always online — answering questions, browsing content, and even handling WooCommerce interactions. 36 37 - 🤖 AI chat powered by **OpenAI**, **DeepSeek**, and **Gemini** 38 - 👥 Assign real **support agents** for hybrid human + AI chat 39 - 🔄 Seamless **AI-to-Agent** conversation handover 40 - 🌙 **AI takeover** during off-hours or weekends 41 - 💾 Every conversation saved in your dashboard 42 43 Your visitors always get the best of both worlds: **instant AI assistance** or **human chat support** when needed. 44 45 # 🛍️ Designed for WooCommerce Success 46 47 AskAny isn’t just a chatbot it’s your **AI sales assistant**. 48 It understands your product catalog, pricing, and stock in real-time. 49 50 - 🛒 Show product cards with **images, price, and stock info** 51 - 🧭 Smart **product recommendations** and upselling 52 - 🗂️ Fetch product info directly in chat 53 - 💬 Add to cart directly from the chat window 54 - 📦 Reduce repetitive pre-sale questions 55 56 Drive more sales while cutting down manual support automatically. 57 58 ## 📄 Intelligent Document & PDF Search 59 60 AskAny’s **Document AI** allows users to search through uploaded manuals, policies, or guides right inside chat. 61 62 - 📚 Upload **PDFs or documents** to serve as your knowledge base 63 - 🧠 AskAny extracts **contextual answers** using AI 64 - 🔍 Combine document-based results with AI chat for precise responses 65 66 Perfect for **knowledge bases**, **policy documentation**, or **training materials**. 67 68 ## 🌐 External Website Crawling & Indexing 69 70 Go beyond your WordPress site. 71 With AskAny’s **External Website Indexing**, you can connect and crawl external websites to expand your AI’s knowledge. 72 73 - 🌍 Add URLs or entire domains to index their content 74 - 🔎 Allow your AI to reference information from trusted sources 75 - 🧩 Combine internal + external data for richer AI responses 76 - 🧠 Perfect for multi-brand support, documentation hubs, and SaaS integrations 77 78 Empower your AI to understand your **whole digital ecosystem** — not just one site. 79 80 81 ## 🧾 Forms Inside the Chatbot (No Reload Needed) 82 83 Enable any form plugin directly inside the chat widget: 84 (Contact Form 7, WPForms, Gravity Forms, Simple Form, etc.) 85 86 - 💡 Capture leads instantly 87 - 🗣️ Run surveys and polls 88 - 💬 Handle feedback and support queries 89 - ⚙️ No page reloads or popups 90 91 Keep users engaged and capture valuable information effortlessly. 92 93 94 ## 🧠 AI That Understands Your Website 95 96 AskAny is designed **specifically for WordPress** and deeply integrated with your site’s data. 97 98 - 📄 Reads and understands pages, posts, and FAQs 99 - 🏷️ Handles WooCommerce products natively 100 - 📚 Supports **PDF search** for document-based responses 101 - ⚙️ Integrates **OpenAI**, **DeepSeek**, and **Gemini** for intelligence 102 - 🎯 Customizable **Q&A** logic and behavior 103 104 Your users get **contextual, relevant, and instant answers** every time. 105 85 106 86 107 … … 189 210 * Service information 190 211 191 192 == Usage ==193 194 Basic Shortcode:195 [askany_chat]196 197 Advanced Shortcode Options:198 [askany_chat title="Customer Support" theme="dark" position="bottom-right" width="350px" height="500px"]199 200 Available Attributes:201 * title - Chat window title202 * placeholder - Input placeholder text203 * button_text - Send button text204 * theme - Theme (light/dark)205 * position - Position (inline/bottom-left/bottom-right)206 * width - Width (e.g., 350px)207 * height - Height (e.g., 500px)208 209 212 == Installation == 210 213 … … 218 221 219 222 = API Key = 220 To obtain an API key, you must [register with Open AI](https://platform.openai.com/login?launch) or [register with DeepSeek](https://platform.deepseek.com/login?launch). Here you can find free [Open AI API key](https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key). 223 To obtain an API key for the AI Assistant, you must register with one of the following providers: 224 225 * **OpenAI:** Register with [Open AI](https://platform.openai.com/login?launch) or log in to obtain your key. 226 * Find your key here: [Open AI API Key Location](https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key) 227 * **DeepSeek:** Register with [DeepSeek](https://platform.deepseek.com/login?launch) or log in to obtain your key. 228 * **Google Gemini:** Log in to [Google AI Studio](https://aistudio.google.com/app/apikey) to generate and manage your Gemini API key. 229 221 230 222 231 == Privacy Notes == 223 232 224 The AI Assistant accesses the API interface of Open AI to generate responses based on your indexing Content, PDF and Q&A. 225 226 Data is sent to and retrieved from the following interfaces: 227 228 - https://api.openai.com/v1/chat/completions 229 - https://api.deepseek.com/v1/chat/completions 230 231 Here you can find all information about the terms of use and data protection of Open AI: https://openai.com/policies and DeepSeek AI : https://deepseek.com/terms-of-service. 233 The AI Assistant accesses the API interface of your chosen provider (OpenAI, DeepSeek, or Google Gemini) to generate responses based on your indexing Content, PDF, and Q&A. 234 235 Data is sent to and retrieved from the following interfaces: 236 237 * `https://api.openai.com/v1/chat/completions` 238 * `https://api.deepseek.com/v1/chat/completions` 239 * `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent` 240 241 == Policy Information == 242 Please review the full terms of use and data protection policies for the AI providers you choose to use: 243 244 * **OpenAI:** [OpenAI Policies](https://openai.com/policies) 245 * **DeepSeek AI:** [DeepSeek AI Terms of Service](https://deepseek.com/terms-of-service) 246 * **Google Gemini:** 247 * [Gemini API Additional Terms of Service](https://ai.google.dev/gemini-api/terms) 248 * [Google API Services User Data Policy](https://policies.google.com/terms/service-specific?hl=en-US) 249 232 250 233 251 == Frequently Asked Questions == … … 255 273 == Screenshots == 256 274 257 1. Chat widget in action 275 1. 💬 Chat Widget in Action – See the live chat experience on the frontend. 276 277 2. 🧑💻 Agent Chat Interface – Manage real-time conversations from the backend. 278 279 3. 🏠 Homepage Settings – Configure chat display and entry behavior easily. 280 281 4. 🤖 AI Assistant Setup – Connect and customize your AI assistant effortlessly. 282 283 5. 👥 AI Agent Management – Add, edit, or organize multiple AI agents. 284 285 6. ⚡ AI Replies in Chat Panel – Experience instant AI-generated markdown supported responses. 286 287 7. 🧩 Embed Form Support – Seamlessly integrate chat forms anywhere on your site. 288 258 289 259 290 == Changelog == 291 292 = 1.5.1 – 12 Nov 2025 = 293 - ✨ Improved frontend chat typing indicator 294 - ⚙️ Fixed all frontend bug and logs 260 295 261 296 = 1.5.0 – 11 Nov 2025 = -
askany/trunk/templates/admin-api-stats.php
r3336134 r3393775 518 518 jQuery.post(ajaxurl, { 519 519 action: 'askany_get_paginated_errors', 520 nonce: '<?php echo wp_create_nonce( 'askany -admin-nonce' ); ?>',520 nonce: '<?php echo wp_create_nonce( 'askany_chat_nonce' ); ?>', 521 521 page: page, 522 522 per_page: errorsPerPage, … … 661 661 jQuery.post(ajaxurl, { 662 662 action: 'askany_clear_api_errors', 663 nonce: '<?php echo wp_create_nonce( 'askany -admin-nonce' ); ?>',663 nonce: '<?php echo wp_create_nonce( 'askany_chat_nonce' ); ?>', 664 664 days: days 665 665 }, function(response) { -
askany/trunk/templates/admin-chat-logs.php
r3336134 r3393775 193 193 jQuery.post(ajaxurl, { 194 194 action: 'askany_get_paginated_chat_logs', 195 nonce: '<?php echo wp_create_nonce( 'askany -admin-nonce' ); ?>',195 nonce: '<?php echo wp_create_nonce( 'askany_chat_nonce' ); ?>', 196 196 page: page, 197 197 per_page: logsPerPage, … … 364 364 jQuery.post(ajaxurl, { 365 365 action: 'askany_clear_chat_logs', 366 nonce: '<?php echo wp_create_nonce( 'askany -admin-nonce' ); ?>',366 nonce: '<?php echo wp_create_nonce( 'askany_chat_nonce' ); ?>', 367 367 days: days 368 368 }, function(response) { -
askany/trunk/templates/admin-pdf-import.php
r3295859 r3393775 91 91 <button type="button" class="button button-small delete-pdf" 92 92 data-id="<?php echo esc_attr($pdf->id); ?>" 93 data-nonce="<?php echo esc_attr(wp_create_nonce('askany -admin-nonce')); ?>">93 data-nonce="<?php echo esc_attr(wp_create_nonce('askany_chat_nonce')); ?>"> 94 94 <?php esc_html_e('Delete', 'askany'); ?> 95 95 </button>
Note: See TracChangeset
for help on using the changeset viewer.