\n <\/td>\n | <?php<\/span><\/td>\n <\/tr>\n \n <\/td>\n | function<\/span> mcwh_subscribe<\/span>(\$<\/span>data<\/span>){<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | \$<\/span>mcwh_settings<\/span> = get_option( 'mcwh_settings'<\/span> );<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | \$<\/span>user_email<\/span> = \$<\/span>data<\/span>['email'<\/span>];<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | /* get existing user record */<\/span><\/td>\n <\/tr>\n \n <\/td>\n | \$<\/span>thisuser<\/span> = get_user_by( 'email'<\/span>, \$<\/span>user_email<\/span> );<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | /* if new user... */<\/span><\/td>\n <\/tr>\n \n <\/td>\n | if<\/span> ( \$<\/span>thisuser<\/span> === false<\/span> ) <\/td>\n <\/tr>\n \n <\/td>\n | <\/td>\n <\/tr>\n | \n <\/td>\n | /* if hard_subscribe then create new user record */<\/span><\/td>\n <\/tr>\n \n <\/td>\n | if<\/span> ( \$<\/span>mcwh_settings<\/span>['hard_subscribe'<\/span>] ) {<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | \$<\/span>userdata<\/span> = array<\/span>(<\/td>\n <\/tr>\n \n <\/td>\n | 'user_pass'<\/span> => wp_generate_password( \$<\/span>length<\/span>=12<\/span>, \$<\/span>include_standard_special_chars<\/span>=false<\/span> ),<\/td>\n <\/tr>\n \n <\/td>\n | 'user_login'<\/span> => \$<\/span>data<\/span>['id'<\/span>],<\/td>\n <\/tr>\n \n <\/td>\n | 'user_email'<\/span> => \$<\/span>user_email<\/span>,<\/td>\n <\/tr>\n \n <\/td>\n | 'first_name'<\/span> => \$<\/span>data<\/span>['merges'<\/span>]['FNAME'<\/span>],<\/td>\n <\/tr>\n \n <\/td>\n | 'last_name'<\/span> => \$<\/span>data<\/span>['merges'<\/span>]['LNAME'<\/span>],<\/td>\n <\/tr>\n \n <\/td>\n | 'role'<\/span> => 'subscriber'<\/span><\/td>\n <\/tr>\n \n <\/td>\n | );<\/td>\n <\/tr>\n | \n <\/td>\n | <\/td>\n <\/tr>\n | \n <\/td>\n | \$<\/span>user_id<\/span> = wp_insert_user( \$<\/span>userdata<\/span> );<\/td>\n <\/tr>\n \n <\/td>\n | <\/td>\n <\/tr>\n | \n <\/td>\n | if<\/span> ( !is_wp_error( \$<\/span>user_id<\/span> ) ) {<\/td>\n <\/tr>\n \n <\/td>\n | <\/td>\n <\/tr>\n | \n <\/td>\n | mcwh_log( 'SUBSCRIBE: Created new user [ '<\/span> . \$<\/span>user_email<\/span> . ' ]'<\/span> );<\/td>\n <\/tr>\n \n <\/td>\n | <\/td>\n <\/tr>\n | \n <\/td>\n | } else<\/span> {<\/td>\n <\/tr>\n \n <\/td>\n | <\/td>\n <\/tr>\n | \n <\/td>\n | mcwh_log( 'SUBSCRIBE: FAILED! Problem encountered trying to create new user [ '<\/span> . \$<\/span>user_email<\/span> . ' ]'<\/span> );<\/td>\n <\/tr>\n \n <\/td>\n | return<\/span>;<\/td>\n <\/tr>\n \n <\/td>\n | }<\/td>\n <\/tr>\n | \n <\/td>\n | <\/td>\n <\/tr>\n | \n <\/td>\n | } else<\/span> {<\/td>\n <\/tr>\n \n <\/td>\n | <\/td>\n <\/tr>\n | \n <\/td>\n | /* if no user found and not creating accounts then exit */<\/span><\/td>\n <\/tr>\n \n <\/td>\n | mcwh_log( 'SUBSCRIBE: FAILED! No user found with this email address and hard_(un)subscribe is false'<\/span> );<\/td>\n <\/tr>\n \n <\/td>\n | return<\/span>;<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | } else<\/span> {<\/td>\n <\/tr>\n \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | mcwh_log( 'SUBSCRIBE: Existing user found with this email address '<\/span> . \$<\/span>user_email<\/span> );<\/td>\n <\/tr>\n \n <\/td>\n | \$<\/span>user_id<\/span> = \$<\/span>thisuser<\/span>->ID<\/span>;<\/td>\n <\/tr>\n \n <\/td>\n | }<\/td>\n <\/tr>\n | \n <\/td>\n | \n<\/td>\n <\/tr>\n | \n <\/td>\n | /* update the user meta regardless - if hard_unsubscribe just won't be shown on the user profile */<\/span><\/td>\n <\/tr>\n \n <\/td>\n | \$<\/span>subscribed<\/span> = update_user_meta( \$<\/span>user_id<\/span>, '_newsletter_subscriber'<\/span>, 1<\/span>, 0<\/span> );<\/td>\n <\/tr>\n \n <\/td>\n | <\/td>\n <\/tr>\n | \n <\/td>\n | mcwh_log( 'SUBSCRIBE: '<\/span> . ( \$<\/span>subscribed<\/span> ? 'SUCCESS! User subscribed'<\/span> : 'FAILED! User already subscribed'<\/span> ) ); <\/td>\n <\/tr>\n \n <\/td>\n | }<\/td>\n <\/tr>\n | \n <\/td>\n | ?><\/span><\/td>\n <\/tr>\n <\/table>\n<\/div>\n\n\n <\/div>\n\n <\/div>\n<\/div>\n\n <\/div>\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |