PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / trunk
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress vtrunk
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 / CheckoutFieldsManager.php
wp-user-avatar / src / Admin / SettingsPages / Membership Last commit date
CouponsPage 1 year ago CustomersPage 5 months ago DashboardPage 1 year ago DownloadLogsPage 1 year ago ExportPage 5 months ago GroupsPage 1 year ago OrdersPage 1 year ago PlansPage 2 months ago SubscriptionsPage 3 months ago TaxSettings 3 years ago views 1 month ago CheckListHeader.php 3 years ago CheckoutFieldsManager.php 1 year ago ContextualStateChangeHelper.php 3 years ago FileDownloads.php 3 years ago PaymentMethods.php 1 year ago PaymentSettings.php 1 month ago PlanIntegrationsMetabox.php 10 months ago SettingsFieldsParser.php 1 year ago index.php 3 years ago
CheckoutFieldsManager.php
143 lines
1 <?php
2
3 namespace ProfilePress\Core\Admin\SettingsPages\Membership;
4
5 use ProfilePress\Core\Admin\SettingsPages\AbstractSettingsPage;
6 use ProfilePress\Core\Membership\CheckoutFields;
7 use ProfilePress\Custom_Settings_Page_Api;
8
9 class CheckoutFieldsManager
10 {
11 public function __construct()
12 {
13 add_filter('ppress_settings_page_submenus_tabs', [$this, 'header_sub_menu_tab']);
14
15 add_action('ppress_admin_settings_submenu_page_payments_checkout-fields', [$this, 'checkout_fields_page']);
16
17 add_action('ppress_register_menu_page_payments_checkout-fields', function () {
18
19 add_filter('ppress_general_settings_admin_page_title', function () {
20 return esc_html__('Checkout Fields &lsaquo; Payments', 'wp-user-avatar');
21 });
22
23 add_action('admin_init', [$this, 'save_checkout_fields']);
24
25 add_action('admin_footer', [$this, 'js_template']);
26 add_action('admin_head', [$this, 'global_js_vars']);
27 });
28 }
29
30 public function header_sub_menu_tab($tabs)
31 {
32 $tabs[174] = ['parent' => 'payments', 'id' => 'checkout-fields', 'label' => esc_html__('Checkout Fields', 'wp-user-avatar')];
33
34 return $tabs;
35 }
36
37 public function save_checkout_fields()
38 {
39 if (isset($_POST['accountInfo']) || isset($_POST['billing'])) {
40
41 check_admin_referer('wp-csa-nonce', 'wp_csa_nonce');
42
43 update_option(CheckoutFields::DB_OPTION_NAME, [
44 'accountInfo' => ppress_clean(ppressPOST_var('accountInfo', []), 'wp_kses_post'),
45 'billing' => ppress_clean(ppressPOST_var('billing', []), 'wp_kses_post'),
46 ]);
47
48 wp_safe_redirect(esc_url_raw(add_query_arg('settings-updated', 'true')));
49 exit;
50 }
51 }
52
53 public function checkout_fields_page()
54 {
55 add_filter('wp_cspa_main_content_area', function () {
56 ob_start();
57 require dirname(__FILE__) . '/views/checkout-fields.php';
58
59 return ob_get_clean();
60 });
61
62 add_action('wp_cspa_form_tag', function () {
63 echo 'id="ppress-checkout-field-manager-form"';
64 });
65
66 add_action('wp_cspa_before_post_body_content', function () {
67 echo '<div class="ppress-submit-wrap">';
68 printf('<input type="submit" name="submit" id="ppress-cfm-submit-btn" class="button button-primary" value="%s">', esc_html__('Save Changes', 'wp-user-avatar'));
69 echo '</div>';
70 });
71
72 $instance = Custom_Settings_Page_Api::instance();
73 $instance->option_name(CheckoutFields::DB_OPTION_NAME);
74 $instance->page_header(esc_html__('Checkout Fields', 'wp-user-avatar'));
75 AbstractSettingsPage::register_core_settings($instance);
76 $instance->build();
77 }
78
79 public static function checkout_field_addition_dropdown($fieldGroup = 'accountInfo')
80 {
81 $standard_fields = CheckoutFields::standard_account_info_fields();
82 $custom_fields = CheckoutFields::standard_custom_fields();
83
84 if ($fieldGroup == 'billing') {
85 $standard_fields = CheckoutFields::standard_billing_fields();
86 $custom_fields = apply_filters('ppress_checkout_billing_custom_fields', []);
87 }
88
89 echo '<select class="ppress-checkout-field-list">';
90 printf('<option value="">%s</option>', esc_html__('Select...', 'wp-user-avatar'));
91
92 if ( ! empty($standard_fields)) {
93 printf('<optgroup label="%s">', esc_html__('Standard Fields', 'wp-user-avatar'));
94 foreach ($standard_fields as $field_key => $field) {
95 printf('<option value="%s">%s</option>', $field_key, $field['label']);
96 }
97 echo '</optgroup>';
98 }
99
100 if ( ! empty($custom_fields)) {
101 printf('<optgroup label="%s">', esc_html__('Custom Fields', 'wp-user-avatar'));
102 foreach ($custom_fields as $field_key => $field) {
103 printf('<option value="%s">%s</option>', $field_key, $field['label']);
104 }
105 echo '</optgroup>';
106 }
107
108 echo '</select>';
109 }
110
111 public function global_js_vars()
112 {
113 echo '<script type="text/javascript">';
114 printf('var ppress_standard_acc_info_fields = %s;', wp_json_encode(CheckoutFields::standard_account_info_fields()));
115 printf('var ppress_standard_billing_fields = %s;', wp_json_encode(CheckoutFields::standard_billing_fields()));
116 printf('var ppress_custom_fields = %s;', wp_json_encode(CheckoutFields::standard_custom_fields()));
117 printf('var ppress_account_info_fields = %s;', wp_json_encode(CheckoutFields::account_info_fields()));
118 printf('var ppress_blling_address_fields = %s;', wp_json_encode(CheckoutFields::billing_fields()));
119 printf('var ppress_logged_in_hidden_fields = %s;', wp_json_encode(CheckoutFields::logged_in_hidden_fields()));
120 echo '</script>';
121 }
122
123 public function js_template()
124 {
125 ?>
126 <script type="text/html" id="tmpl-ppress-checkout-field-item">
127 <?php require dirname(__FILE__) . '/views/checkout-field-item.php'; ?>
128 </script>
129 <?php
130 }
131
132 public static function get_instance()
133 {
134 static $instance = null;
135
136 if (is_null($instance)) {
137 $instance = new self();
138 }
139
140 return $instance;
141 }
142 }
143