update_noptin_subscriber( $subscriber_id, $details = array() )
Updates a Noptin subscriber
Source Source
File: includes/subscriber.php
function update_noptin_subscriber( $subscriber_id, $details = array() ) { global $wpdb; $subscriber_id = absint( $subscriber_id ); // Ensure the subscriber exists. $subscriber = get_noptin_subscriber( $subscriber_id ); if ( ! $subscriber->exists() ) { return false; } // Prepare main variables. $table = get_noptin_subscribers_table_name(); $fields = wp_unslash( $details ); $to_update = array(); // Maybe split name into first and last. if ( isset( $fields['name'] ) ) { $names = noptin_split_subscriber_name( $fields['name'] ); $fields['first_name'] = empty( $fields['first_name'] ) ? $names[0] : trim( $fields['first_name'] ); $fields['second_name'] = empty( $fields['second_name'] ) ? $names[1] : trim( $fields['second_name'] ); unset( $fields['name'] ); } if ( isset( $fields['last_name'] ) ) { $fields['second_name'] = empty( $fields['second_name'] ) ? trim( $fields['last_name'] ) : $fields['second_name']; unset( $fields['last_name'] ); } if ( isset( $fields['id'] ) ) { unset( $fields['id'] ); } foreach ( noptin_parse_list( 'email first_name second_name confirm_key date_created active confirmed' ) as $field ) { if ( isset( $fields[ $field ] ) ) { $to_update[ $field ] = noptin_clean( $fields[ $field ] ); unset( $fields[ $field ] ); } } if ( ! empty( $to_update ) ) { $wpdb->update( $table, $to_update, array( 'id' => $subscriber_id ) ); } // Insert additional meta data. foreach ( $fields as $field => $value ) { if ( 'name' === $field || 'integration_data' === $field ) { continue; } update_noptin_subscriber_meta( $subscriber_id, $field, $value ); } // Clean the cache. $old_subscriber = new Noptin_Subscriber( $subscriber_id ); $old_subscriber->clear_cache(); do_action( 'noptin_update_subscriber', $subscriber_id, $details ); return true; }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
1.2.3 | Introduced. |