PluginProbe ʕ •ᴥ•ʔ
Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager / 4.1.40
Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager v4.1.40
4.1.41 4.1.40 4.1.39 4.1.38 trunk 1.2 1.2.1 1.2.2 1.2.3 1.3 1.3.1 1.3.2 1.3.3 1.4 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.10 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.2 1.8.3 1.9.0 1.9.1 1.9.2 1.9.3 2.0.0 2.0.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.1.0 2.1.1 2.1.4 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.1 2.3.2 2.3.3 2.3.4 2.4.0 2.4.1 2.4.10 2.4.11 2.4.12 2.4.13 2.4.14 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.6.0 2.7.0 2.7.1 2.8.0 2.9.0 2.9.1 2.9.2 3.0.0 3.0.1 3.0.10 3.0.11 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.3.0 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.10 3.5.11 3.5.12 3.5.13 3.5.14 3.5.15 3.5.16 3.5.17 3.5.18 3.5.19 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.5.7 3.5.8 3.5.9 3.6.0 4.0.0 4.1.0 4.1.1 4.1.10 4.1.11 4.1.12 4.1.13 4.1.14 4.1.15 4.1.16 4.1.17 4.1.18 4.1.19 4.1.2 4.1.20 4.1.21 4.1.22 4.1.23 4.1.24 4.1.25 4.1.26 4.1.27 4.1.28 4.1.29 4.1.3 4.1.30 4.1.31 4.1.32 4.1.34 4.1.35 4.1.36 4.1.37 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9
flexible-checkout-fields / classes / user-profile.php
flexible-checkout-fields / classes Last commit date
activation-tracker.php 3 weeks ago display-options.php 3 weeks ago field-type-settings.php 3 weeks ago field.php 3 weeks ago filed-validation.php 3 weeks ago myaccount-edit-address.php 3 weeks ago myaccount-field-processor.php 3 weeks ago plugin.php 3 weeks ago settings.php 3 weeks ago tracker.php 3 weeks ago user-meta-checkout.php 3 weeks ago user-meta.php 3 weeks ago user-profile.php 3 weeks ago
user-profile.php
115 lines
1 <?php
2 /**
3 * User profile hooks.
4 *
5 * @package Flexible Checkout Fields
6 */
7
8 /**
9 * User profile hooks.
10 *
11 * Class Flexible_Checkout_Fields_User_Profile
12 */
13 class Flexible_Checkout_Fields_User_Profile {
14
15 const FIELD_TYPE = 'type';
16 const FIELD_TYPE_SELECT = 'select';
17
18 const FIELD_TYPE_INSPIRECHECKBOX = 'inspirecheckbox';
19 const FIELD_TYPE_INSPIRERADIO = 'inspireradio';
20
21 const FIELD_COPY_BILLING = 'copy_billing';
22
23 /**
24 * Plugin.
25 *
26 * @var Flexible_Checkout_Fields_Plugin
27 */
28 protected $plugin;
29
30 /**
31 * .
32 *
33 * @var Flexible_Checkout_Fields_User_Meta
34 */
35 private $user_meta;
36
37 /**
38 * Flexible_Checkout_Fields_User_Profile constructor.
39 *
40 * @param Flexible_Checkout_Fields_Plugin $plugin Plugin.
41 * @param Flexible_Checkout_Fields_User_Meta $user_meta .
42 */
43 public function __construct( Flexible_Checkout_Fields_Plugin $plugin, Flexible_Checkout_Fields_User_Meta $user_meta ) {
44 $this->plugin = $plugin;
45 $this->user_meta = $user_meta;
46 }
47
48 /**
49 * Hooks.
50 */
51 public function hooks() {
52 add_action( 'show_user_profile', [ $this, 'add_custom_user_fields_admin' ], 75 );
53 add_action( 'edit_user_profile', [ $this, 'add_custom_user_fields_admin' ], 75 );
54
55 add_action( 'personal_options_update', [ $this, 'save_custom_user_fields_admin' ] );
56 add_action( 'edit_user_profile_update', [ $this, 'save_custom_user_fields_admin' ] );
57 }
58
59 /**
60 * Add custom fields to edit user admin /wp-admin/profile.php.
61 *
62 * @param mixed $user .
63 *
64 * @return void
65 */
66 public function add_custom_user_fields_admin( $user ) {
67 $settings = $this->plugin->get_settings();
68 $sections = $this->plugin->sections;
69 if ( ! $settings ) {
70 return;
71 }
72
73 foreach ( $settings as $key => $type ) {
74 if ( ! $this->user_meta->is_fcf_section( $key )
75 || ! $this->user_meta->is_section_allowed_for_usermeta( $key )
76 || ! is_array( $type ) ) {
77 continue;
78 }
79
80 $section_data = $sections[ $key ] ?? ( $sections[ 'woocommerce_' . $key ] ?? null );
81 if ( $section_data === null ) {
82 continue;
83 }
84
85 echo '<h3>' . esc_html( $section_data['tab_title'] ) . '</h3>';
86 echo '<div class="fcf-admin-fields postbox">';
87 echo '<div class="inside">';
88 foreach ( $type as $field ) {
89 if ( isset( $field['visible'] ) && 0 === intval( $field['visible'] )
90 && ( isset( $field['custom_field'] ) && 1 === intval( $field['custom_field'] ) ) ) {
91 $field_value = htmlspecialchars_decode( get_the_author_meta( $field['name'], $user->ID ) );
92
93 echo apply_filters( 'flexible_checkout_fields_form_field', '', $field['name'], $field, $field_value );
94 }
95 }
96 echo '</div>';
97 echo '</div>';
98 }
99 }
100
101 /**
102 * Save custom user fields in admin.
103 *
104 * @param int $user_id User ID.
105 */
106 public function save_custom_user_fields_admin( $user_id ) {
107 if ( ! current_user_can( 'edit_user', $user_id ) ) {
108 return;
109 }
110 if ( wp_verify_nonce( $_POST['_wpnonce'], 'update-user_' . $user_id ) ) { // phpcs:ignore
111 $this->user_meta->update_customer_meta_fields( $user_id, $_POST );
112 }
113 }
114 }
115