PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 4.0.3
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v4.0.3
4.17.3 4.17.2 4.17.1 4.17.0 4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / Admin / SettingsPages / Membership / PaymentMethods.php
wp-user-avatar / src / Admin / SettingsPages / Membership Last commit date
CouponsPage 4 years ago CustomersPage 4 years ago DashboardPage 4 years ago OrdersPage 4 years ago PlansPage 4 years ago SubscriptionsPage 4 years ago TaxSettings 4 years ago views 4 years ago CheckListHeader.php 4 years ago CheckoutFieldsManager.php 4 years ago ContextualStateChangeHelper.php 4 years ago PaymentMethods.php 4 years ago PaymentSettings.php 4 years ago SettingsFieldsParser.php 4 years ago index.php 4 years ago
PaymentMethods.php
144 lines
1 <?php
2
3 namespace ProfilePress\Core\Admin\SettingsPages\Membership;
4
5 use ProfilePress\Core\Admin\SettingsPages\AbstractSettingsPage;
6 use ProfilePress\Core\Membership\PaymentMethods\PaymentMethods as PaymentGateways;
7 use ProfilePress\Custom_Settings_Page_Api;
8
9 /** @todo make payment method drag and drop to work */
10 class PaymentMethods
11 {
12 public function __construct()
13 {
14 add_filter('ppress_settings_page_submenus_tabs', [$this, 'header_sub_menu_tab']);
15
16 add_action('ppress_admin_settings_submenu_page_payments_payment-methods', [$this, 'payment_methods_page']);
17
18 add_action('ppress_register_menu_page_payments_payment-methods', function () {
19
20 add_filter('ppress_general_settings_admin_page_title', function () {
21 return esc_html__('Payment Methods &lsaquo; Payments', 'wp-user-avatar');
22 });
23
24 add_action('admin_footer', [$this, 'js_script']);
25 });
26 }
27
28 public function header_sub_menu_tab($tabs)
29 {
30 $tabs[173] = ['parent' => 'payments', 'id' => 'payment-methods', 'label' => esc_html__('Payment Methods', 'wp-user-avatar')];
31
32 return $tabs;
33 }
34
35 public function payment_method_list()
36 {
37 ob_start();
38 require dirname(__FILE__) . '/views/payment-method-list.php';
39
40 return ob_get_clean();
41 }
42
43 protected function get_enabled_payment_methods()
44 {
45 $methods = PaymentGateways::get_instance()->get_enabled_methods();
46
47 $bucket = ['' => __('&mdash; No gateway &mdash;', 'wp-user-avatar')];
48
49 foreach ($methods as $id => $method) {
50 $bucket[$id] = $method->get_method_title();
51 }
52
53 return $bucket;
54 }
55
56 public function payment_methods_page()
57 {
58 $instance = Custom_Settings_Page_Api::instance();
59 $instance->option_name(PPRESS_PAYMENT_METHODS_OPTION_NAME);
60 $instance->page_header(esc_html__('Payment Methods', 'wp-user-avatar'));
61
62 if ( ! empty($_GET['method'])) {
63
64 $method = PaymentGateways::get_instance()->get_by_id(
65 sanitize_text_field($_GET['method'])
66 );
67
68 $instance->page_header($method->get_method_title());
69
70 add_action('wp_cspa_after_header', function () use ($method) {
71 echo '<p>' . $method->get_method_description() . '</p>';
72 });
73
74 $settings = [];
75 foreach ($method->admin_settings() as $key => $setting) {
76 $settings[0][$method->id . '_' . $key] = $setting;
77 }
78
79 } else {
80
81 $instance->add_view_classes('ppress-payment-methods-list');
82
83 $settings = [
84 [
85 'payment_method_list' => [
86 'type' => 'arbitrary',
87 'data' => $this->payment_method_list(),
88 ],
89 'test_mode' => [
90 'label' => esc_html__('Test Mode', 'wp-user-avatar'),
91 'description' => esc_html__('When test mode is enabled, no live transactions are processed. Use test mode in conjunction with the sandbox/test account for the payment method to test.', 'wp-user-avatar'),
92 'type' => 'checkbox'
93 ],
94 'test_mode_reconnection_notice' => [
95 'label' => '',
96 'data' => '<style>#test_mode_reconnection_notice_row {display:none}</style><div class="pp-alert-notice pp-alert-notice-info"><p>' . __('Switching test/live modes requires Stripe account reconnection.', 'wp-user-avatar') . '</p></div>',
97 'type' => 'custom_field_block'
98 ],
99 'default_payment_method' => [
100 'label' => esc_html__('Default Payment Method', 'wp-user-avatar'),
101 'description' => esc_html__('Select payment method to automatically load on the checkout page. If empty, the first active method is selected instead.', 'wp-user-avatar'),
102 'type' => 'select',
103 'options' => $this->get_enabled_payment_methods()
104 ]
105 ]
106 ];
107
108 add_action('wp_cspa_after_header', function () {
109 echo '<p>' . esc_html__('Installed payment methods are listed below. Drag and drop to control their display order on the frontend.', 'wp-user-avatar') . '</p>';
110 });
111 }
112
113 $instance->main_content($settings);
114 $instance->remove_white_design();
115 AbstractSettingsPage::register_core_settings($instance, true);
116 $instance->build(true);
117 }
118
119 public function js_script()
120 {
121 ?>
122 <script type="text/javascript">
123 (function ($) {
124 $(function () {
125 $('#test_mode').on('change', function () {
126 $('#test_mode_reconnection_notice_row').show();
127 });
128 });
129 })(jQuery)
130 </script>
131 <?php
132 }
133
134 public static function get_instance()
135 {
136 static $instance = null;
137
138 if (is_null($instance)) {
139 $instance = new self();
140 }
141
142 return $instance;
143 }
144 }