| @@ -33,8 +33,9 @@ | ||
| 33 | 33 | 'tracker_last_update', |
| 34 | 34 | 'rate_us_feedback', |
| 35 | 35 | 'role_manager_promote', |
| 36 | 36 | 'experiment_promotion', |
| 37 | + 'send_app_promotion', | |
| 37 | 38 | 'site_mailer_promotion', |
| 38 | 39 | 'plugin_image_optimization', |
| 39 | 40 | 'ally_pages_promotion', |
| 40 | 41 | self::LOCAL_GOOGLE_FONTS_DISABLED_NOTICE_ID, |
| @@ -469,8 +470,58 @@ | ||
| 469 | 470 | $detected_form_plugin = false; |
| 470 | 471 | return $detected_form_plugin; |
| 471 | 472 | } |
| 472 | 473 | |
| 474 | + private function notice_send_app_promotion() { | |
| 475 | + return self::EXIT_EARLY_FOR_BACKWARD_COMPATIBILITY; | |
| 476 | + | |
| 477 | + $notice_id = 'send_app_promotion'; | |
| 478 | + | |
| 479 | + if ( ! $this->is_elementor_page() && ! $this->is_elementor_admin_screen() ) { | |
| 480 | + return false; | |
| 481 | + } | |
| 482 | + | |
| 483 | + if ( time() < $this->get_install_time() + ( 60 * DAY_IN_SECONDS ) ) { | |
| 484 | + return false; | |
| 485 | + } | |
| 486 | + | |
| 487 | + if ( ! current_user_can( 'install_plugins' ) || User::is_user_notice_viewed( $notice_id ) ) { | |
| 488 | + return false; | |
| 489 | + } | |
| 490 | + | |
| 491 | + $plugin_file_path = 'send/send-app.php'; | |
| 492 | + $plugin_slug = 'send-app'; | |
| 493 | + | |
| 494 | + $cta_data = $this->get_plugin_cta_data( $plugin_slug, $plugin_file_path ); | |
| 495 | + if ( empty( $cta_data ) ) { | |
| 496 | + return false; | |
| 497 | + } | |
| 498 | + | |
| 499 | + $title = sprintf( esc_html__( 'Turn leads into loyal shoppers', 'elementor' ) ); | |
| 500 | + | |
| 501 | + $options = [ | |
| 502 | + 'title' => $title, | |
| 503 | + 'description' => esc_html__( 'Collecting leads is just the beginning. With Send by Elementor, you can manage contacts, launch automations, and turn form submissions into sales.', 'elementor' ), | |
| 504 | + 'id' => $notice_id, | |
| 505 | + 'type' => 'cta', | |
| 506 | + 'button' => [ | |
| 507 | + 'text' => $cta_data['text'], | |
| 508 | + 'url' => $cta_data['url'], | |
| 509 | + 'type' => 'cta', | |
| 510 | + ], | |
| 511 | + 'button_secondary' => [ | |
| 512 | + 'text' => esc_html__( 'Learn more', 'elementor' ), | |
| 513 | + 'url' => 'https://go.elementor.com/Formslearnmore', | |
| 514 | + 'new_tab' => true, | |
| 515 | + 'type' => 'cta', | |
| 516 | + ], | |
| 517 | + ]; | |
| 518 | + | |
| 519 | + $this->print_admin_notice( $options ); | |
| 520 | + | |
| 521 | + return true; | |
| 522 | + } | |
| 523 | + | |
| 473 | 524 | private function notice_local_google_fonts_disabled() { |
| 474 | 525 | |
| 475 | 526 | if ( ! $this->is_elementor_page() && ! $this->is_elementor_admin_screen() ) { |
| 476 | 527 | return false; |
| @@ -649,24 +700,14 @@ | ||
| 649 | 700 | if ( ! $is_installed ) { |
| 650 | 701 | $description = esc_html__( 'Use Site Mailer to ensure store emails like purchase confirmations and shipping updates reach the inbox every time. Included in your ONE subscription.', 'elementor' ); |
| 651 | 702 | $button_text = esc_html__( 'Install now', 'elementor' ); |
| 652 | 703 | $button_url = $this->get_plugin_button_install_url( $plugin_slug ); |
| 653 | - $campaign_data = [ | |
| 654 | - 'name' => 'elementor_site_mailer_campaign', | |
| 655 | - 'campaign' => 'sm-plg-one', | |
| 656 | - 'source' => 'sm-core-woo-one-install', | |
| 657 | - 'medium' => 'wp-dash', | |
| 658 | - ]; | |
| 704 | + $source = 'sm-core-woo-one-install'; | |
| 659 | 705 | } elseif ( ! $is_active ) { |
| 660 | 706 | $description = esc_html__( 'Site Mailer is installed and included in your ONE subscription. Activate it to ensure store emails like purchase confirmations and shipping updates reach the inbox every time.', 'elementor' ); |
| 661 | 707 | $button_text = esc_html__( 'Activate now', 'elementor' ); |
| 662 | 708 | $button_url = $this->get_plugin_button_activate_url( $plugin_file_path ); |
| 663 | - $campaign_data = [ | |
| 664 | - 'name' => 'elementor_site_mailer_campaign', | |
| 665 | - 'campaign' => 'sm-plg-one', | |
| 666 | - 'source' => 'sm-core-woo-one-activate', | |
| 667 | - 'medium' => 'wp-dash', | |
| 668 | - ]; | |
| 709 | + $source = 'sm-core-woo-one-activate'; | |
| 669 | 710 | } |
| 670 | 711 | } else { |
| 671 | 712 | $title = esc_html__( 'Keep your form emails out of the spam folder', 'elementor' ); |
| 672 | 713 | |
| @@ -673,24 +714,14 @@ | ||
| 673 | 714 | if ( ! $is_installed ) { |
| 674 | 715 | $description = esc_html__( 'Use Site Mailer to ensure emails reach the inbox and track delivery with built-in logs. Included in your ONE subscription.', 'elementor' ); |
| 675 | 716 | $button_text = esc_html__( 'Install now', 'elementor' ); |
| 676 | 717 | $button_url = $this->get_plugin_button_install_url( $plugin_slug ); |
| 677 | - $campaign_data = [ | |
| 678 | - 'name' => 'elementor_site_mailer_campaign', | |
| 679 | - 'campaign' => 'sm-plg-one', | |
| 680 | - 'source' => 'sm-core-form-one-install', | |
| 681 | - 'medium' => 'wp-dash', | |
| 682 | - ]; | |
| 718 | + $source = 'sm-core-form-one-install'; | |
| 683 | 719 | } elseif ( ! $is_active ) { |
| 684 | 720 | $description = esc_html__( 'Use Site Mailer to ensure emails reach the inbox and track delivery with built-in logs. Site Mailer is included in your ONE subscription. Activate it to continue.', 'elementor' ); |
| 685 | 721 | $button_text = esc_html__( 'Activate now', 'elementor' ); |
| 686 | 722 | $button_url = $this->get_plugin_button_activate_url( $plugin_file_path ); |
| 687 | - $campaign_data = [ | |
| 688 | - 'name' => 'elementor_site_mailer_campaign', | |
| 689 | - 'campaign' => 'sm-plg-one', | |
| 690 | - 'source' => 'sm-core-form-one-activate', | |
| 691 | - 'medium' => 'wp-dash', | |
| 692 | - ]; | |
| 723 | + $source = 'sm-core-form-one-activate'; | |
| 693 | 724 | } |
| 694 | 725 | } |
| 695 | 726 | // phpcs:ignore Universal.ControlStructures.DisallowLonelyIf.Found |
| 696 | 727 | } else { |
| @@ -700,23 +731,13 @@ | ||
| 700 | 731 | |
| 701 | 732 | if ( ! $is_installed ) { |
| 702 | 733 | $button_text = esc_html__( 'Install now', 'elementor' ); |
| 703 | 734 | $button_url = $this->get_plugin_button_install_url( $plugin_slug ); |
| 704 | - $campaign_data = [ | |
| 705 | - 'name' => 'elementor_site_mailer_campaign', | |
| 706 | - 'campaign' => 'sm-plg', | |
| 707 | - 'source' => 'sm-core-woo-install', | |
| 708 | - 'medium' => 'wp-dash', | |
| 709 | - ]; | |
| 735 | + $source = 'sm-core-woo-install'; | |
| 710 | 736 | } elseif ( ! $is_active ) { |
| 711 | 737 | $button_text = esc_html__( 'Activate now', 'elementor' ); |
| 712 | 738 | $button_url = $this->get_plugin_button_activate_url( $plugin_file_path ); |
| 713 | - $campaign_data = [ | |
| 714 | - 'name' => 'elementor_site_mailer_campaign', | |
| 715 | - 'campaign' => 'sm-plg', | |
| 716 | - 'source' => 'sm-core-woo-activate', | |
| 717 | - 'medium' => 'wp-dash', | |
| 718 | - ]; | |
| 739 | + $source = 'sm-core-woo-activate'; | |
| 719 | 740 | } |
| 720 | 741 | } else { |
| 721 | 742 | $title = esc_html__( 'Ensure your form emails avoid the spam folder!', 'elementor' ); |
| 722 | 743 | $description = esc_html__( 'Use Site Mailer for improved email deliverability, detailed email logs, and an easy setup.', 'elementor' ); |
| @@ -723,23 +744,13 @@ | ||
| 723 | 744 | |
| 724 | 745 | if ( ! $is_installed ) { |
| 725 | 746 | $button_text = esc_html__( 'Install now', 'elementor' ); |
| 726 | 747 | $button_url = $this->get_plugin_button_install_url( $plugin_slug ); |
| 727 | - $campaign_data = [ | |
| 728 | - 'name' => 'elementor_site_mailer_campaign', | |
| 729 | - 'campaign' => 'sm-plg', | |
| 730 | - 'source' => 'sm-core-form-install', | |
| 731 | - 'medium' => 'wp-dash', | |
| 732 | - ]; | |
| 748 | + $source = 'sm-core-form-install'; | |
| 733 | 749 | } elseif ( ! $is_active ) { |
| 734 | 750 | $button_text = esc_html__( 'Activate now', 'elementor' ); |
| 735 | 751 | $button_url = $this->get_plugin_button_activate_url( $plugin_file_path ); |
| 736 | - $campaign_data = [ | |
| 737 | - 'name' => 'elementor_site_mailer_campaign', | |
| 738 | - 'campaign' => 'sm-plg', | |
| 739 | - 'source' => 'sm-core-form-activate', | |
| 740 | - 'medium' => 'wp-dash', | |
| 741 | - ]; | |
| 752 | + $source = 'sm-core-form-activate'; | |
| 742 | 753 | } |
| 743 | 754 | } |
| 744 | 755 | } |
| 745 | 756 | |
| @@ -753,14 +764,12 @@ | ||
| 753 | 764 | 'id' => $notice_id, |
| 754 | 765 | 'type' => 'cta', |
| 755 | 766 | 'button' => [ |
| 756 | 767 | 'text' => $button_text, |
| 757 | - 'url' => self::add_plg_campaign_data( $button_url, $campaign_data ), | |
| 768 | + 'url' => $button_url, | |
| 758 | 769 | 'type' => 'cta', |
| 759 | 770 | 'data' => [ |
| 760 | - 'campaign' => $campaign_data['campaign'], | |
| 761 | - 'source' => $campaign_data['source'], | |
| 762 | - 'medium' => $campaign_data['medium'], | |
| 771 | + 'source' => $source, | |
| 763 | 772 | ], |
| 764 | 773 | ], |
| 765 | 774 | 'button_secondary' => [ |
| 766 | 775 | 'text' => esc_html__( 'Learn more', 'elementor' ), |
| @@ -892,9 +901,9 @@ | ||
| 892 | 901 | $button_text = esc_html__( 'Install now', 'elementor' ); |
| 893 | 902 | $button_url = $this->get_plugin_button_install_url( $plugin_slug ); |
| 894 | 903 | $campaign_data = [ |
| 895 | 904 | 'name' => 'elementor_image_optimization_campaign', |
| 896 | - 'campaign' => 'io-plg-one', | |
| 905 | + 'campaign' => 'image-optimization-plg-wp-media-library-one-install', | |
| 897 | 906 | 'source' => 'io-wp-media-library-one-install', |
| 898 | 907 | 'medium' => 'wp-dash-one', |
| 899 | 908 | ]; |
| 900 | 909 | } elseif ( ! $is_active ) { |
| @@ -902,9 +911,9 @@ | ||
| 902 | 911 | $button_text = esc_html__( 'Activate now', 'elementor' ); |
| 903 | 912 | $button_url = $this->get_plugin_button_activate_url( $plugin_file_path ); |
| 904 | 913 | $campaign_data = [ |
| 905 | 914 | 'name' => 'elementor_image_optimization_campaign', |
| 906 | - 'campaign' => 'io-plg-one', | |
| 915 | + 'campaign' => 'image-optimization-plg-wp-media-library-one-activate', | |
| 907 | 916 | 'source' => 'io-wp-media-library-one-activate', |
| 908 | 917 | 'medium' => 'wp-dash-one', |
| 909 | 918 | ]; |
| 910 | 919 | } |
| @@ -915,9 +924,9 @@ | ||
| 915 | 924 | $button_text = esc_html__( 'Install now', 'elementor' ); |
| 916 | 925 | $button_url = $this->get_plugin_button_install_url( $plugin_slug ); |
| 917 | 926 | $campaign_data = [ |
| 918 | 927 | 'name' => 'elementor_image_optimization_campaign', |
| 919 | - 'campaign' => 'io-plg', | |
| 928 | + 'campaign' => 'image-optimization-plg-wp-media-library-install', | |
| 920 | 929 | 'source' => 'io-wp-media-library-install', |
| 921 | 930 | 'medium' => 'wp-dash', |
| 922 | 931 | ]; |
| 923 | 932 | } elseif ( ! $is_active ) { |
| @@ -924,9 +933,9 @@ | ||
| 924 | 933 | $button_text = esc_html__( 'Activate now', 'elementor' ); |
| 925 | 934 | $button_url = $this->get_plugin_button_activate_url( $plugin_file_path ); |
| 926 | 935 | $campaign_data = [ |
| 927 | 936 | 'name' => 'elementor_image_optimization_campaign', |
| 928 | - 'campaign' => 'io-plg', | |
| 937 | + 'campaign' => 'image-optimization-plg-wp-media-library-activate', | |
| 929 | 938 | 'source' => 'io-wp-media-library-activate', |
| 930 | 939 | 'medium' => 'wp-dash', |
| 931 | 940 | ]; |
| 932 | 941 | } |
| @@ -938,14 +947,12 @@ | ||
| 938 | 947 | 'id' => $notice_id, |
| 939 | 948 | 'type' => 'cta', |
| 940 | 949 | 'button' => [ |
| 941 | 950 | 'text' => $button_text, |
| 942 | - 'url' => self::add_plg_campaign_data( $button_url, $campaign_data ), | |
| 951 | + 'url' => $button_url, | |
| 943 | 952 | 'type' => 'cta', |
| 944 | 953 | 'data' => [ |
| 945 | - 'campaign' => $campaign_data['campaign'], | |
| 946 | 954 | 'source' => $campaign_data['source'], |
| 947 | - 'medium' => $campaign_data['medium'], | |
| 948 | 955 | ], |
| 949 | 956 | ], |
| 950 | 957 | ]; |
| 951 | 958 | |
| @@ -982,12 +989,9 @@ | ||
| 982 | 989 | if ( $options['type'] ) { |
| 983 | 990 | $notice_classes[] = 'e-notice--' . $options['type']; |
| 984 | 991 | } |
| 985 | 992 | |
| 986 | - $wrapper_attributes = [ | |
| 987 | - 'role' => 'region', | |
| 988 | - 'aria-label' => esc_html__( 'Elementor notice', 'elementor' ), | |
| 989 | - ]; | |
| 993 | + $wrapper_attributes = []; | |
| 990 | 994 | |
| 991 | 995 | if ( $options['dismissible'] ) { |
| 992 | 996 | $label = esc_html__( 'Dismiss this notice.', 'elementor' ); |
| 993 | 997 | $notice_classes[] = 'e-notice--dismissible'; |
| @@ -1142,9 +1146,8 @@ | ||
| 1142 | 1146 | */ |
| 1143 | 1147 | public function __construct() { |
| 1144 | 1148 | add_action( 'admin_notices', [ $this, 'admin_notices' ], 20 ); |
| 1145 | 1149 | add_action( 'admin_action_install-plugin', [ $this, 'maybe_log_campaign' ] ); |
| 1146 | - add_action( 'admin_action_activate', [ $this, 'maybe_log_campaign' ] ); | |
| 1147 | 1150 | } |
| 1148 | 1151 | |
| 1149 | 1152 | /** |
| 1150 | 1153 | * Get module name. |