PluginProbe
Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More / 1.0.4
Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More v1.0.4
2.4.1 2.4.0 2.3.4 2.3.3 2.3.2 2.3.1 2.3.0 2.2.2 2.2.1 2.2.0 2.1.2 2.1.1 trunk 0.0.1 0.0.2 0.0.3 0.0.4 0.0.5 0.0.6 0.0.7 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 All 68 releases
better-payment / includes / Admin.php

Admin.php in Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More 1.0.4, at includes/Admin.php

194 lines 5.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Better_Payment\Lite;
4
5 use Better_Payment\Lite\Admin\Settings;
6 use Better_Payment\Lite\Admin\Elementor\Widget;
7 use Better_Payment\Lite\Admin\Menu;
8 use Better_Payment\Lite\Classes\Helper;
9 use Better_Payment\Lite\Classes\Export;
10 use Better_Payment\Lite\Classes\Import;
11 use PriyoMukul\WPNotice\Notices;
12 use PriyoMukul\WPNotice\Utils\CacheBank;
13 use PriyoMukul\WPNotice\Utils\NoticeRemover;
14
15 /**
16 * Exit if accessed directly
17 */
18 if (!defined('ABSPATH')) {
19 exit;
20 }
21
22 /**
23 * The admin class
24 *
25 * @since 0.0.1
26 */
27 class Admin extends Controller{
28
29 // Check if pro is enabled
30 protected $pro_enabled;
31
32 private static $cache_bank = null;
33
34 /**
35 * Initialize the class
36 *
37 * @since 0.0.1
38 */
39 public function __construct() {
40
41 }
42
43 public function init(){
44 $this->pro_enabled = apply_filters('better_payment/pro_enabled', false);
45
46 if ( defined( 'ELEMENTOR_VERSION' ) ) {
47 new Settings();
48 }
49
50 if (!did_action('elementor/loaded')) {
51 $notice = new Helper();
52 $notice->elementor_not_loaded();
53 }
54
55 if (did_action('elementor/loaded')) {
56 add_filter('plugin_action_links', array($this, 'plugin_actions_links'), 10, 2);
57 }
58
59 if ( ! $this->pro_enabled ) {
60 $this->admin_notice();
61 }
62 }
63
64 /**
65 * Add settings page link on plugins page
66 *
67 * @param array $links
68 * @param string $file
69 *
70 * @return array
71 * @since 0.0.1
72 */
73 public function plugin_actions_links($links, $file) {
74 $better_payment_plugin = plugin_basename(BETTER_PAYMENT_FILE);
75
76 if ($file == $better_payment_plugin && current_user_can('manage_options')) {
77 $links[] = sprintf('<a href="%s">%s</a>', admin_url("admin.php?page=better-payment-settings"), __('Settings', 'better-payment'));
78
79 if ( ! $this->pro_enabled ) {
80 $links[] = sprintf('<a href="https://wpdeveloper.com/in/upgrade-better-payment-pro" target="_blank" style="color: #7561F8; font-weight: bold;">' . __('Go Pro', 'better-payment') . '</a>');
81 }
82 }
83
84 return $links;
85 }
86
87 public function admin_notice() {
88 require_once BETTER_PAYMENT_PATH . '/vendor/autoload.php';
89
90 self::$cache_bank = CacheBank::get_instance();
91
92 NoticeRemover::get_instance('1.0.0');
93 NoticeRemover::get_instance('1.0.0', '\WPDeveloper\BetterDocs\Dependencies\PriyoMukul\WPNotice\Notices');
94
95 $notices = new Notices( [
96 'id' => 'better-payment',
97 'storage_key' => 'notices',
98 'lifetime' => 3,
99 'stylesheet_url' => esc_url_raw( BETTER_PAYMENT_URL . '/assets/css/admin.min.css' ),
100 'styles' => esc_url_raw( BETTER_PAYMENT_URL . '/assets/css/admin.min.css' ),
101 'priority' => 9
102 ] );
103
104 $review_notice = __( 'We hope you\'re enjoying Better Payment! Could you please do us a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?', 'better-payment' );
105 $_review_notice = [
106 'thumbnail' => plugins_url( 'assets/img/logo.svg', BETTER_PAYMENT_BASENAME ),
107 'html' => '<p>' . $review_notice . '</p>',
108 'links' => [
109 'later' => array(
110 'link' => '//wordpress.org/support/plugin/better-payment/reviews/#new-post',
111 'target' => '_blank',
112 'label' => __( 'Ok, you deserve it!', 'better-payment' ),
113 'icon_class' => 'dashicons dashicons-external',
114 'attributes' => [
115 'target' => '_blank',
116 ],
117 ),
118 'allready' => array(
119 'label' => __( 'I already did', 'better-payment' ),
120 'icon_class' => 'dashicons dashicons-smiley',
121 'attributes' => [
122 'data-dismiss' => true
123 ],
124 ),
125 'maybe_later' => array(
126 'label' => __( 'Maybe Later', 'better-payment' ),
127 'icon_class' => 'dashicons dashicons-calendar-alt',
128 'attributes' => [
129 'data-later' => true
130 ],
131 ),
132 'support' => array(
133 'link' => 'https://wpdeveloper.com/support',
134 'label' => __( 'I need help', 'better-payment' ),
135 'icon_class' => 'dashicons dashicons-sos',
136 'attributes' => [
137 'target' => '_blank',
138 ],
139 ),
140 'never_show_again' => array(
141 'label' => __( 'Never show again', 'better-payment' ),
142 'icon_class' => 'dashicons dashicons-dismiss',
143 'attributes' => [
144 'data-dismiss' => true
145 ],
146 )
147 ]
148 ];
149
150 $notices->add(
151 'review',
152 $_review_notice,
153 [
154 'start' => $notices->strtotime( '+7 day' ),
155 'recurrence' => 30,
156 'refresh' => BETTER_PAYMENT_VERSION,
157 'dismissible' => true,
158 ]
159 );
160
161 self::$cache_bank->create_account( $notices );
162 self::$cache_bank->calculate_deposits( $notices );
163 }
164
165 /**
166 * Dispatch and bind actions
167 *
168 * @return void
169 * @since 0.0.1
170 */
171 public static function dispatch_actions( ) {
172 $menuObj = new Menu();
173 $menuObj->init();
174
175 $bpElementorWidgetObj = new Widget();
176
177 $bpImportObj = new Import();
178
179 $bpExportObj = new Export();
180
181 // Handle select2 ajax search
182 add_action('wp_ajax_better_payment_select2_search_post', [$bpElementorWidgetObj, 'select2_ajax_posts_filter_autocomplete']);
183
184 add_action('wp_ajax_better_payment_select2_get_title', [$bpElementorWidgetObj, 'select2_ajax_get_posts_value_titles']);
185
186 // Elements
187 add_action('elementor/controls/controls_registered',[$bpElementorWidgetObj, 'register_controls']);
188
189 //Page: Transactions
190 add_action('admin_post_better-payment-transactions-import',[$bpImportObj, 'import_transactions']);
191 add_action('wp_ajax_better-payment-transactions-export',[$bpExportObj, 'export_transactions']);
192 }
193 }
194