| @@ -3,9 +3,9 @@ | ||
| 3 | 3 | * Plugin Name: LearnPress |
| 4 | 4 | * Plugin URI: https://thimpress.com/learnpress |
| 5 | 5 | * Description: LearnPress is a WordPress complete solution for creating a Learning Management System (LMS). It can help you to create courses, lessons and quizzes. |
| 6 | 6 | * Author: ThimPress |
| 7 | - * Version: 4.4.1 | |
| 7 | + * Version: 4.4.7 | |
| 8 | 8 | * Author URI: http://thimpress.com |
| 9 | 9 | * Requires at least: 6.0 |
| 10 | 10 | * Requires PHP: 7.4 |
| 11 | 11 | * Text Domain: learnpress |
| @@ -18,8 +18,9 @@ | ||
| 18 | 18 | use LearnPress\TemplateHooks\CourseBuilder\Course\BuilderCourseTemplate; |
| 19 | 19 | use LearnPress\TemplateHooks\CourseBuilder\Course\BuilderEditCourseTemplate; |
| 20 | 20 | use LearnPress\Ajax\AI\OpenAiAjax; |
| 21 | 21 | use LearnPress\Ajax\BuilderDashboardAjax; |
| 22 | +use LearnPress\Ajax\CourseToolsAjax; | |
| 22 | 23 | use LearnPress\Ajax\CourseBuilder\CourseBuilderAjax; |
| 23 | 24 | use LearnPress\Ajax\EditCurriculumAjax; |
| 24 | 25 | use LearnPress\Ajax\EditQuestionAjax; |
| 25 | 26 | use LearnPress\Ajax\EditQuizAjax; |
| @@ -25,10 +26,13 @@ | ||
| 25 | 26 | use LearnPress\Ajax\EditQuizAjax; |
| 26 | 27 | use LearnPress\Ajax\Order\ExportOrderCSVAjax; |
| 27 | 28 | use LearnPress\Ajax\LessonAjax; |
| 28 | 29 | use LearnPress\Ajax\LoadContentViaAjax; |
| 30 | +use LearnPress\Ajax\SampleDataAJAX; | |
| 31 | +use LearnPress\Ajax\SetupWizardAjax; | |
| 29 | 32 | use LearnPress\Ajax\AI\AIAssistantAjax; |
| 30 | 33 | use LearnPress\Ajax\MCP\McpApiKeysAjax; |
| 34 | +use LearnPress\Ajax\Webhook\WebhooksAjax; | |
| 31 | 35 | use LearnPress\Ajax\CourseBuilder\CBEditCourseAjax; |
| 32 | 36 | use LearnPress\Ajax\SendEmailAjax; |
| 33 | 37 | use LearnPress\Background\LPBackgroundTrigger; |
| 34 | 38 | use LearnPress\ExternalPlugin\Elementor\LPElementor; |
| @@ -48,8 +52,11 @@ | ||
| 48 | 52 | use LearnPress\Shortcodes\SingleInstructorShortcode; |
| 49 | 53 | use LearnPress\TemplateHooks\Admin\AdminEditQizTemplate; |
| 50 | 54 | use LearnPress\TemplateHooks\Admin\AdminEditQuestionTemplate; |
| 51 | 55 | use LearnPress\TemplateHooks\Admin\AdminListStudentsEnrolled; |
| 56 | +use LearnPress\TemplateHooks\Admin\AdminStatisticsReportTable; | |
| 57 | +use LearnPress\TemplateHooks\Admin\Tools\AdminCourseTools; | |
| 58 | +use LearnPress\Statistics\FilterOptionsProvider; | |
| 52 | 59 | use LearnPress\TemplateHooks\Admin\AI\AdminCreateCourseAITemplate; |
| 53 | 60 | use LearnPress\TemplateHooks\Admin\AI\AdminEditCourseCurriculumWithAITemplate; |
| 54 | 61 | use LearnPress\TemplateHooks\Admin\AI\AdminEditWithAITemplate; |
| 55 | 62 | use LearnPress\TemplateHooks\Course\AdminEditCurriculumTemplate; |
| @@ -90,8 +97,9 @@ | ||
| 90 | 97 | use LearnPress\TemplateHooks\Course\CourseAIAssistantTemplate; |
| 91 | 98 | use LearnPress\Widgets\LPRegisterWidget; |
| 92 | 99 | use LearnPress\WPGDPR\ErasePersonalData; |
| 93 | 100 | use LearnPress\WPGDPR\ExportPersonalData; |
| 101 | +use LearnPress\Webhook\WebhookDispatcher; | |
| 94 | 102 | |
| 95 | 103 | defined( 'ABSPATH' ) || exit(); |
| 96 | 104 | |
| 97 | 105 | if ( ! class_exists( 'LearnPress' ) ) { |
| @@ -390,8 +398,9 @@ | ||
| 390 | 398 | AdminEditCurriculumTemplate::instance(); |
| 391 | 399 | AdminEditSettingTemplate::instance(); |
| 392 | 400 | AdminEditQizTemplate::instance(); |
| 393 | 401 | AdminEditQuestionTemplate::instance(); |
| 402 | + AdminCourseTools::instance(); | |
| 394 | 403 | CourseMaterialTemplate::instance(); |
| 395 | 404 | CourseAIAssistantTemplate::instance(); |
| 396 | 405 | AdminOrderItemsTemplate::instance(); |
| 397 | 406 | AdminOrderListTemplate::instance(); |
| @@ -398,8 +407,10 @@ | ||
| 398 | 407 | AdminCreateCourseAITemplate::instance(); |
| 399 | 408 | AdminEditWithAITemplate::instance(); |
| 400 | 409 | AdminEditCourseCurriculumWithAITemplate::instance(); |
| 401 | 410 | AdminListStudentsEnrolled::instance(); |
| 411 | + AdminStatisticsReportTable::instance(); | |
| 412 | + FilterOptionsProvider::register_flush_hooks(); | |
| 402 | 413 | // WP GDPR |
| 403 | 414 | ErasePersonalData::instance(); |
| 404 | 415 | ExportPersonalData::instance(); |
| 405 | 416 | |
| @@ -480,10 +491,8 @@ | ||
| 480 | 491 | |
| 481 | 492 | include_once 'inc/lp-webhooks.php'; // Addon learnpress-2checkout-payment v4.0.1 is using, when update v4.0.2 don't need load it. |
| 482 | 493 | include_once 'inc/class-lp-request-handler.php'; |
| 483 | 494 | |
| 484 | - include_once 'inc/admin/helpers/class-lp-plugins-helper.php'; | |
| 485 | - | |
| 486 | 495 | // Todo: tungnx check those files. |
| 487 | 496 | include_once 'inc/abstracts/abstract-object-query.php'; |
| 488 | 497 | include_once 'inc/class-lp-course-query.php'; |
| 489 | 498 | include_once 'inc/abstracts/abstract-addon.php'; |
| @@ -503,8 +512,9 @@ | ||
| 503 | 512 | include_once 'inc/order/class-lp-order.php'; |
| 504 | 513 | |
| 505 | 514 | include_once 'inc/user/lp-user-functions.php'; |
| 506 | 515 | include_once 'inc/user/class-lp-user-factory.php'; |
| 516 | + WebhookDispatcher::instance(); | |
| 507 | 517 | include_once 'inc/user/abstract-lp-user.php'; |
| 508 | 518 | include_once 'inc/user/class-lp-user.php'; |
| 509 | 519 | include_once 'inc/user/class-lp-profile.php'; |
| 510 | 520 | include_once 'inc/user-item/class-lp-user-item.php'; |
| @@ -750,8 +760,10 @@ | ||
| 750 | 760 | 'init', |
| 751 | 761 | function () { |
| 752 | 762 | LoadContentViaAjax::catch_lp_ajax(); |
| 753 | 763 | LessonAjax::catch_lp_ajax(); |
| 764 | + SampleDataAJAX::catch_lp_ajax(); | |
| 765 | + SetupWizardAjax::catch_lp_ajax(); | |
| 754 | 766 | EditCurriculumAjax::catch_lp_ajax(); |
| 755 | 767 | EditQuizAjax::catch_lp_ajax(); |
| 756 | 768 | EditQuestionAjax::catch_lp_ajax(); |
| 757 | 769 | SendEmailAjax::catch_lp_ajax(); |
| @@ -760,9 +772,11 @@ | ||
| 760 | 772 | OpenAiAjax::catch_lp_ajax(); |
| 761 | 773 | AIAssistantAjax::catch_lp_ajax(); |
| 762 | 774 | ExportOrderCSVAjax::catch_lp_ajax(); |
| 763 | 775 | McpApiKeysAjax::catch_lp_ajax(); |
| 776 | + WebhooksAjax::catch_lp_ajax(); | |
| 764 | 777 | CBEditCourseAjax::catch_lp_ajax(); |
| 778 | + CourseToolsAjax::catch_lp_ajax(); | |
| 765 | 779 | |
| 766 | 780 | do_action( 'learn-press/register-ajax-handlers' ); |
| 767 | 781 | }, |
| 768 | 782 | 11 |
| @@ -859,14 +873,26 @@ | ||
| 859 | 873 | * @param array $links Array of action links |
| 860 | 874 | * |
| 861 | 875 | * @return array |
| 862 | 876 | * @since 4.3.11 |
| 863 | - * | |
| 877 | + * @version 1.0.1 | |
| 864 | 878 | */ |
| 865 | 879 | public function plugin_links( array $links ): array { |
| 866 | - $links[] = sprintf( '<a href="%s">%s</a>', admin_url( 'admin.php?page=learn-press-settings' ), __( 'Settings', 'learnpress' ) ); | |
| 867 | - $links[] = sprintf( '<a href="%s" target="_blank">%s</a>', LearnPress::$doc_link, __( 'Documentation', 'learnpress' ) ); | |
| 868 | - $links[] = sprintf( '<a href="%s" target="_blank">%s</a>', get_admin_url() . '/admin.php?page=learn-press-addons', __( 'Add-ons', 'learnpress' ) ); | |
| 880 | + $links[] = sprintf( | |
| 881 | + '<a href="%s">%s</a>', | |
| 882 | + esc_url_raw( admin_url( 'admin.php?page=learn-press-settings' ) ), | |
| 883 | + esc_html__( 'Settings', 'learnpress' ) | |
| 884 | + ); | |
| 885 | + $links[] = sprintf( | |
| 886 | + '<a href="%s" target="_blank">%s</a>', | |
| 887 | + esc_url_raw( LearnPress::$doc_link ), | |
| 888 | + esc_html__( 'Documentation', 'learnpress' ) | |
| 889 | + ); | |
| 890 | + $links[] = sprintf( | |
| 891 | + '<a href="%s" target="_blank">%s</a>', | |
| 892 | + esc_url_raw( admin_url( 'admin.php?page=learn-press-addons' ) ), | |
| 893 | + esc_html__( 'Add-ons', 'learnpress' ) | |
| 894 | + ); | |
| 869 | 895 | |
| 870 | 896 | return $links; |
| 871 | 897 | } |
| 872 | 898 | |