PluginProbe
SellKit – Funnel builder and checkout optimizer for WooCommerce to sell more, faster / 1.7.9
SellKit – Funnel builder and checkout optimizer for WooCommerce to sell more, faster v1.7.9
2.6.0 trunk 1.1.0 1.1.4 1.2.1 1.2.2 1.2.3 1.2.5 1.2.9 1.3.1 1.3.2 1.5.0 1.5.1 1.5.4 1.5.7 1.5.8 1.5.9 1.6.2 1.6.5 1.6.8 1.7.2 1.7.4 1.7.5 1.7.9 1.8.1 All 42 releases
sellkit / includes / admin / class-promote-sellkit-pro.php

class-promote-sellkit-pro.php in SellKit – Funnel builder and checkout optimizer for WooCommerce to sell more, faster 1.7.9, at includes/admin/class-promote-sellkit-pro.php

127 lines 3.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 defined( 'ABSPATH' ) || die();
4
5 /**
6 * Promote sellkit pro.
7 *
8 * @since 1.2.3
9 */
10 class Promote_Sellkit_Pro {
11 /**
12 * Class instance.
13 *
14 * @since 1.2.3
15 * @var Promote_Sellkit_Pro
16 */
17 private static $instance = null;
18
19 /**
20 * Get a class instance.
21 *
22 * @since 1.2.3
23 *
24 * @return Promote_Sellkit_Pro Class instance.
25 */
26 public static function get_instance() {
27 if ( null === self::$instance ) {
28 self::$instance = new self();
29 }
30
31 return self::$instance;
32 }
33
34 /**
35 * Class constructor.
36 *
37 * @since 1.2.3
38 */
39 public function __construct() {
40 if ( class_exists( 'Sellkit_Pro' ) ) {
41 return;
42 }
43
44 add_action( 'admin_menu', [ $this, 'admin_sub_menu' ], 15 );
45 add_filter( 'sellkit_sub_menu', [ $this, 'update_sub_menu_list' ] );
46 add_filter( 'sellkit_contact_segmentation_conditions_data', [ $this, 'update_conditions_data' ] );
47 }
48
49 /**
50 * Add upgrade to pro sub menu.
51 *
52 * @since 1.2.3
53 */
54 public function admin_sub_menu() {
55 add_submenu_page(
56 'sellkit-dashboard',
57 '',
58 '<span class="sellkit-upgrade-to-pro"><i class="sellkit-icon-upgarde-to-pro"></i>' . esc_html__( 'Upgrade to Pro', 'sellkit' ) . '</span>',
59 'manage_options',
60 'upgrade_to_pro',
61 function () {
62 wp_redirect( 'https://getsellkit.com/pricing/?utm_source=wp-dashboard&utm_campaign=gopro&utm_medium=' . wp_get_theme()->get( 'Name' ) ); // phpcs:ignore
63 exit;
64 }
65 );
66 }
67
68 /**
69 * Add sellkit pro sub menu.
70 *
71 * @since 1.2.3
72 * @param array $submenu array of submenu.
73 */
74 public function update_sub_menu_list( $submenu ) {
75 $pro_sub_menu = [
76 'sellkit-discount' => esc_html__( 'Discount', 'sellkit' ),
77 'sellkit-coupon' => esc_html__( 'Coupons', 'sellkit' ),
78 'sellkit-alert' => esc_html__( 'Notices', 'sellkit' ),
79 ];
80
81 sellkit()->sellkit_menus = array_merge( sellkit()->sellkit_menus, array_keys( $pro_sub_menu ) );
82
83 return array_merge( $submenu, $pro_sub_menu );
84 }
85
86 /**
87 * Update conditions data base on sellkit pro.
88 *
89 * @since 1.2.3
90 * @param array $conditions array of conditions.
91 */
92 public function update_conditions_data( $conditions ) {
93 $pro = [];
94
95 $pro_conditions = [
96 'customer-value' => esc_html__( 'RFM Segments', 'sellkit' ),
97 'first-order-date' => esc_html__( 'First Order Date', 'sellkit' ),
98 'last-order-date' => esc_html__( 'Last Order Date', 'sellkit' ),
99 'purchased-category' => esc_html__( 'Purchased Categories', 'sellkit' ),
100 'purchased-product' => esc_html__( 'Purchased Products', 'sellkit' ),
101 'time-deadline' => esc_html__( 'Time Deadline', 'sellkit' ),
102 'total-spent' => esc_html__( 'Total Spent', 'sellkit' ),
103 'viewed-category' => esc_html__( 'Viewed Categories', 'sellkit' ),
104 'viewed-product' => esc_html__( 'Viewed Products', 'sellkit' ),
105 'visitor-city' => __( 'Visitor City & Region', 'sellkit' ),
106 'visitor-country' => esc_html__( 'Visitor Country', 'sellkit' ),
107 'visitor-currency' => esc_html__( 'Visitor\'s Local Currency', 'sellkit' ),
108 'visitor-timezone' => esc_html__( 'Visitor\'s Timezone', 'sellkit' ),
109 'upsell' => esc_html__( 'Upsell', 'sellkit' ),
110 'downsell' => esc_html__( 'Downsell', 'sellkit' ),
111 ];
112
113 foreach ( $pro_conditions as $key => $value ) {
114 $pro[ $key ] = [
115 'title' => $value . ' ' . esc_html__( '(PRO)', 'sellkit' ),
116 'type' => 'promote',
117 'isSearchable' => '',
118 'openMenuOnClick' => '',
119 ];
120 }
121
122 return array_merge( $conditions, $pro );
123 }
124 }
125
126 Promote_Sellkit_Pro::get_instance();
127