function sunshine_checkout_contact_fields() { global $sunshine; ?> <fieldset> <h2><?php _e('Account & Contact Information', 'sunshine'); ?> </h2> <div class="field field-left required"><label><?php _e('Email', 'sunshine'); ?> <span class="required">*</span> <input type="text" name="email" value="<?php echo esc_attr(isset($_POST['email']) ? $_POST['email'] : SunshineUser::get_user_meta('email')); ?> " /></label></div> <div class="field field-right"><label><?php _e('Phone', 'sunshine'); ?> <input type="tel" name="phone" value="<?php echo esc_attr(SunshineUser::get_user_meta('phone')); ?> " /></label></div> <?php if (!is_user_logged_in()) { ?> <div class="field field-left <?php if (!$sunshine->options['allow_guest_checkout']) { echo 'required'; } ?> "><label><?php _e('Password', 'sunshine'); if (!$sunshine->options['allow_guest_checkout']) { echo '<span class="required">*</span>'; } ?> <input type="password" name="password" value="" /></label><span class="field-desc"><?php if ($sunshine->options['allow_guest_checkout']) { _e('Optionally set a password to create an account', 'sunshine'); } ?> </span></div> <?php } ?> <?php do_action('sunshine_checkout_contact_fields'); echo '</fieldset>'; ?> <script> jQuery(document).ready(function($){ var typingTimer; //timer identifier var doneTypingInterval = 1000; //time in ms, 5 second for example var $input = $('input[name="email"]'); //on keyup, start the countdown $input.on('keyup', function () { clearTimeout(typingTimer); typingTimer = setTimeout(sunshine_done_email, doneTypingInterval); }); //on keydown, clear the countdown $input.on('keydown', function () { clearTimeout(typingTimer); }); $input.on('focusout', function () { sunshine_done_email(); }); //user is "finished typing," do something function sunshine_done_email() { $.ajax({ type: 'POST', url: '<?php echo admin_url('admin-ajax.php'); ?> ', data: { action: 'sunshine_checkout_email_exists', email: $input.val() }, success: function(data, textStatus, XMLHttpRequest) { var obj = jQuery.parseJSON(data); $('#sunshine-email-exists-error').remove(); if ( obj.exists ) { $input.after('<span id="sunshine-email-exists-error" class="field-desc error"><?php echo sprintf(__('Email already exists, <a href="%s">please login first</a>', 'sunshine'), wp_login_url(sunshine_current_url(false))); ?> </span>'); } }, error: function(MLHttpRequest, textStatus, errorThrown) { alert('Sorry, there was an error with your request'); } }); } }); </script> <?php }
function sunshine_favorites_lightbox_menu($menu, $image) { global $sunshine; if ($sunshine->options['disable_favorites']) { return $menu; } $class = ''; if (sunshine_is_image_favorite($image->ID)) { $class = 'sunshine-favorite'; } if (is_user_logged_in()) { $menu .= ' <a href="#" data-image-id="' . $image->ID . '" onclick="sunshine_add_image_to_favorites(this); return false;" class="' . $class . '"><i class="fa fa-heart"></i></a>'; } else { $menu .= '<a href="' . wp_login_url(add_query_arg('sunshine_favorite', $image->ID, sunshine_current_url(false) . '#' . $image->ID)) . '"><i class="fa fa-heart"></i></a>'; } return $menu; }
function sunshine_update_account() { global $current_user, $sunshine; if (isset($_POST['sunshine_update_account']) && $_POST['sunshine_update_account'] == 1) { $vars['country'] = isset($_POST['country']) ? $_POST['country'] : ''; $vars['first_name'] = isset($_POST['first_name']) ? $_POST['first_name'] : ''; $vars['last_name'] = isset($_POST['last_name']) ? $_POST['last_name'] : ''; $vars['address'] = isset($_POST['address']) ? $_POST['address'] : ''; $vars['address2'] = isset($_POST['address2']) ? $_POST['address2'] : ''; $vars['city'] = isset($_POST['city']) ? $_POST['city'] : ''; $vars['state'] = isset($_POST['state']) ? $_POST['state'] : ''; $vars['zip'] = isset($_POST['zip']) ? $_POST['zip'] : ''; $vars['shipping_country'] = isset($_POST['shipping_country']) ? $_POST['shipping_country'] : ''; $vars['shipping_first_name'] = isset($_POST['shipping_first_name']) ? $_POST['shipping_first_name'] : ''; $vars['shipping_last_name'] = isset($_POST['shipping_last_name']) ? $_POST['shipping_last_name'] : ''; $vars['shipping_address'] = isset($_POST['shipping_address']) ? $_POST['shipping_address'] : ''; $vars['shipping_address2'] = isset($_POST['shipping_address2']) ? $_POST['shipping_address2'] : ''; $vars['shipping_city'] = isset($_POST['shipping_city']) ? $_POST['shipping_city'] : ''; $vars['shipping_state'] = isset($_POST['shipping_state']) ? $_POST['shipping_state'] : ''; $vars['shipping_zip'] = isset($_POST['shipping_zip']) ? $_POST['shipping_zip'] : ''; if (isset($_POST['billing_as_shipping']) && $_POST['billing_as_shipping'] == 1) { $vars['country'] = isset($_POST['shipping_country']) ? $_POST['shipping_country'] : ''; $vars['first_name'] = isset($_POST['shipping_first_name']) ? $_POST['shipping_first_name'] : ''; $vars['last_name'] = isset($_POST['shipping_last_name']) ? $_POST['shipping_last_name'] : ''; $vars['address'] = isset($_POST['shipping_address']) ? $_POST['shipping_address'] : ''; $vars['address2'] = isset($_POST['shipping_address2']) ? $_POST['shipping_address2'] : ''; $vars['city'] = isset($_POST['shipping_city']) ? $_POST['shipping_city'] : ''; $vars['state'] = isset($_POST['shipping_state']) ? $_POST['shipping_state'] : ''; $vars['zip'] = isset($_POST['shipping_zip']) ? $_POST['shipping_zip'] : ''; } $vars['billing_as_shipping'] = isset($_POST['billing_as_shipping']) ? $_POST['billing_as_shipping'] : ''; $vars['phone'] = isset($_POST['phone']) ? $_POST['phone'] : ''; foreach ($vars as $key => $item) { SunshineUser::update_user_meta_by_id($current_user->ID, $key, sanitize_text_field($item)); } $userdata['ID'] = $current_user->ID; $userdata['user_email'] = sanitize_email($_POST['email']); $userdata['first_name'] = sanitize_text_field($_POST['first_name']); $userdata['last_name'] = sanitize_text_field($_POST['last_name']); wp_update_user($userdata); $sunshine->add_message(__('Account updated', 'sunshine')); wp_redirect(sunshine_current_url(false)); exit; } }
function can_view_gallery() { global $post, $current_user; if (self::$current_gallery && self::$current_gallery->post_status == 'private' && !current_user_can('sunshine_manage_options')) { $allowed_users = get_post_meta(self::$current_gallery->ID, 'sunshine_gallery_private_user'); if (!in_array($current_user->ID, $allowed_users)) { wp_redirect(add_query_arg('sunshine_login_notice', 'private_gallery', wp_login_url(sunshine_current_url(false)))); exit; } } if (self::$current_gallery && get_post_meta(self::$current_gallery->ID, 'sunshine_gallery_access', true) == 'account' && !is_user_logged_in()) { wp_redirect(add_query_arg('sunshine_login_notice', 'gallery_requires_login', wp_login_url(sunshine_current_url(false)))); exit; } }