function _mp_cart_shipping($editable = false, $echo = false) { global $mp, $current_user; $meta = wp_parse_args(get_user_meta($current_user->ID, 'mp_shipping_info', true), array('address1' => '', 'address2' => '', 'city' => '', 'state' => '', 'zip' => '', 'country' => '', 'phone' => '')); //get address $email = !empty($_SESSION['mp_shipping_info']['email']) ? $_SESSION['mp_shipping_info']['email'] : (isset($meta['email']) ? $meta['email'] : $current_user->user_email); $name = !empty($_SESSION['mp_shipping_info']['name']) ? $_SESSION['mp_shipping_info']['name'] : (isset($meta['name']) ? $meta['name'] : $current_user->user_firstname . ' ' . $current_user->user_lastname); $address1 = !empty($_SESSION['mp_shipping_info']['address1']) ? $_SESSION['mp_shipping_info']['address1'] : $meta['address1']; $address2 = !empty($_SESSION['mp_shipping_info']['address2']) ? $_SESSION['mp_shipping_info']['address2'] : $meta['address2']; $city = !empty($_SESSION['mp_shipping_info']['city']) ? $_SESSION['mp_shipping_info']['city'] : $meta['city']; $state = !empty($_SESSION['mp_shipping_info']['state']) ? $_SESSION['mp_shipping_info']['state'] : $meta['state']; $zip = !empty($_SESSION['mp_shipping_info']['zip']) ? $_SESSION['mp_shipping_info']['zip'] : $meta['zip']; $country = !empty($_SESSION['mp_shipping_info']['country']) ? $_SESSION['mp_shipping_info']['country'] : $meta['country']; if (!$country) { $country = $mp->get_setting('base_country', 'US'); } $phone = !empty($_SESSION['mp_shipping_info']['phone']) ? $_SESSION['mp_shipping_info']['phone'] : $meta['phone']; $special_instructions = !empty($_SESSION['mp_shipping_info']['special_instructions']) ? $_SESSION['mp_shipping_info']['special_instructions'] : ''; $content = ''; //don't show if logged in if (!is_user_logged_in() && MP_HIDE_LOGIN_OPTION !== true && $editable) { $content .= '<p class="mp_cart_login_msg">'; $content .= __('Made a purchase here before?', 'mp') . ' <a class="mp_cart_login_link" href="' . wp_login_url(mp_checkout_step_url('shipping')) . '">' . __('Login now to retrieve your saved info »', 'mp') . '</a>'; $content .= '</p>'; } if ($editable) { $content .= '<form id="mp_shipping_form" method="post" action="">'; //Flag used by ajax to alert a submit of any errors that may have occured on the fornt end. //Set to "1" when the ajax starts so that if the ajax fails the failure will autonmatically be flagged. //Left as "1" is ajax returns an error $content .= '<input type="hidden" id="mp_no_shipping_options" name="no_shipping_options" value="0" />'; $content .= apply_filters('mp_checkout_before_shipping', ''); $content .= '<table class="mp_cart_shipping">'; $content .= '<thead><tr>'; $content .= '<th colspan="2">' . ($mp->download_only_cart($mp->get_cart_contents()) && !$mp->global_cart || $mp->get_setting('shipping->method') != 'none' ? __('Enter Your Checkout Information:', 'mp') : __('Enter Your Shipping Information:', 'mp')) . '</th>'; $content .= '</tr></thead>'; $content .= '<tbody>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Email:', 'mp') . '*</td><td>'; $content .= apply_filters('mp_checkout_error_email', ''); $content .= '<input size="35" name="email" type="text" value="' . esc_attr($email) . '" /></td>'; $content .= '</tr>'; if ((!$mp->download_only_cart($mp->get_cart_contents()) || $mp->global_cart || $mp->get_setting('tax->downloadable_address')) && ($mp->get_setting('shipping->method') !== 'none' || $mp->download_only_cart($mp->get_cart_contents()) && $mp->get_setting('tax->downloadable_address')) || $mp->mixed_cart($mp->get_cart_contents()) && $mp->get_setting('tax->downloadable_address')) { //if ((!$mp->download_only_cart($mp->get_cart_contents()) || $mp->global_cart || $mp->get_setting('tax->downloadable_address')) && $mp->get_setting('shipping->method') != 'none') { $content .= '<tr>'; $content .= '<td align="right">' . __('Full Name:', 'mp') . '*</td><td>'; $content .= apply_filters('mp_checkout_error_name', ''); $content .= '<input size="35" name="name" type="text" value="' . esc_attr($name) . '" /> </td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Country:', 'mp') . '*</td><td>'; $content .= apply_filters('mp_checkout_error_country', ''); $content .= '<select id="mp_country" name="country" class="mp_shipping_field">'; foreach ($mp->get_setting('shipping->allowed_countries', array()) as $code) { $content .= '<option value="' . $code . '"' . selected($country, $code, false) . '>' . esc_attr($mp->countries[$code]) . '</option>'; } $content .= '</select>'; $content .= '</td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Address:', 'mp') . '*</td><td>'; $content .= apply_filters('mp_checkout_error_address1', ''); $content .= '<input size="45" name="address1" type="text" value="' . esc_attr($address1) . '" /><br />'; $content .= '<small><em>' . __('Street address, P.O. box, company name, c/o', 'mp') . '</em></small>'; $content .= '</td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Address 2:', 'mp') . ' </td><td>'; $content .= '<input size="45" name="address2" type="text" value="' . esc_attr($address2) . '" /><br />'; $content .= '<small><em>' . __('Apartment, suite, unit, building, floor, etc.', 'mp') . '</em></small>'; $content .= '</td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('City:', 'mp') . '*</td><td>'; $content .= apply_filters('mp_checkout_error_city', ''); $content .= '<input size="25" id="mp_city" class="mp_shipping_field" name="city" type="text" value="' . esc_attr($city) . '" /></td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('State/Province/Region:', 'mp') . ($country == 'US' || $country == 'CA' ? '*' : '') . '</td><td id="mp_province_field">'; $content .= apply_filters('mp_checkout_error_state', ''); $content .= mp_province_field($country, $state) . '</td>'; $content .= '</tr>'; $content .= '<tr' . (array_key_exists($country, $mp->countries_no_postcode) ? ' style="display:none"' : '') . '>'; $content .= '<td align="right">' . __('Postal/Zip Code:', 'mp') . '*</td><td>'; $content .= apply_filters('mp_checkout_error_zip', ''); $content .= '<input size="10" class="mp_shipping_field" id="mp_zip" name="zip" type="text" value="' . esc_attr($zip) . '" /></td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Phone Number:', 'mp') . '</td><td>'; $content .= '<input size="20" name="phone" type="text" value="' . esc_attr($phone) . '" /></td>'; $content .= '</tr>'; } if ($mp->get_setting('special_instructions')) { $content .= '<tr>'; $content .= '<td align="right">' . __('Special Instructions:', 'mp') . '</td><td>'; $content .= '<textarea name="special_instructions" rows="2" style="width: 100%;">' . esc_textarea($special_instructions) . '</textarea></td>'; $content .= '</tr>'; } if (!$mp->download_only_cart($mp->get_cart_contents())) { $content .= apply_filters('mp_checkout_shipping_field', ''); } $content .= '</tbody>'; $content .= '</table>'; $content .= apply_filters('mp_checkout_after_shipping', ''); $content .= '<p class="mp_cart_direct_checkout">'; $content .= '<input type="submit" name="mp_shipping_submit" id="mp_shipping_submit" value="' . __('Continue Checkout »', 'mp') . '" />'; $content .= '</p>'; $content .= '</form>'; } else { if (!$mp->download_only_cart($mp->get_cart_contents())) { //is not editable and not download only $content .= '<table class="mp_cart_shipping">'; $content .= '<thead><tr>'; $content .= '<th>' . __('Shipping Information:', 'mp') . '</th>'; $content .= '<th align="right"><a href="' . mp_checkout_step_url('shipping') . '">' . __('Edit', 'mp') . '</a></th>'; $content .= '</tr></thead>'; $content .= '<tbody>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Email:', 'mp') . '</td><td>'; $content .= esc_attr($email) . ' </td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Full Name:', 'mp') . '</td><td>'; $content .= esc_attr($name) . '</td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Address:', 'mp') . '</td>'; $content .= '<td>' . esc_attr($address1) . '</td>'; $content .= '</tr>'; if ($address2) { $content .= '<tr>'; $content .= '<td align="right">' . __('Address 2:', 'mp') . '</td>'; $content .= '<td>' . esc_attr($address2) . '</td>'; $content .= '</tr>'; } $content .= '<tr>'; $content .= '<td align="right">' . __('City:', 'mp') . '</td>'; $content .= '<td>' . esc_attr($city) . '</td>'; $content .= '</tr>'; if ($state) { $content .= '<tr>'; $content .= '<td align="right">' . __('State/Province/Region:', 'mp') . '</td>'; $content .= '<td>' . esc_attr($state) . '</td>'; $content .= '</tr>'; } $content .= '<tr>'; $content .= '<td align="right">' . __('Postal/Zip Code:', 'mp') . '</td>'; $content .= '<td>' . esc_attr($zip) . '</td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Country:', 'mp') . '</td>'; $content .= '<td>' . $mp->countries[$country] . '</td>'; $content .= '</tr>'; if ($phone) { $content .= '<tr>'; $content .= '<td align="right">' . __('Phone Number:', 'mp') . '</td>'; $content .= '<td>' . esc_attr($phone) . '</td>'; $content .= '</tr>'; } if (!$mp->download_only_cart($mp->get_cart_contents())) { $content .= apply_filters('mp_checkout_shipping_field_readonly', ''); } $content .= '</tbody>'; $content .= '</table>'; } } $content = apply_filters('_mp_cart_shipping', $content, $editable); if ($echo) { echo $content; } else { return $content; } }
function _mp_cart_shipping($editable = false, $echo = false) { global $mp, $current_user; $settings = get_option('mp_settings'); $meta = get_user_meta($current_user->ID, 'mp_shipping_info', true); //get address $email = !empty($_SESSION['mp_shipping_info']['email']) ? $_SESSION['mp_shipping_info']['email'] : (isset($meta['email']) ? $meta['email'] : $current_user->user_email); $name = !empty($_SESSION['mp_shipping_info']['name']) ? $_SESSION['mp_shipping_info']['name'] : (isset($meta['name']) ? $meta['name'] : $current_user->user_firstname . ' ' . $current_user->user_lastname); $address1 = !empty($_SESSION['mp_shipping_info']['address1']) ? $_SESSION['mp_shipping_info']['address1'] : $meta['address1']; $address2 = !empty($_SESSION['mp_shipping_info']['address2']) ? $_SESSION['mp_shipping_info']['address2'] : $meta['address2']; $city = !empty($_SESSION['mp_shipping_info']['city']) ? $_SESSION['mp_shipping_info']['city'] : $meta['city']; $state = !empty($_SESSION['mp_shipping_info']['state']) ? $_SESSION['mp_shipping_info']['state'] : $meta['state']; $zip = !empty($_SESSION['mp_shipping_info']['zip']) ? $_SESSION['mp_shipping_info']['zip'] : $meta['zip']; $country = !empty($_SESSION['mp_shipping_info']['country']) ? $_SESSION['mp_shipping_info']['country'] : $meta['country']; if (!$country) { $country = $settings['base_country']; } $phone = !empty($_SESSION['mp_shipping_info']['phone']) ? $_SESSION['mp_shipping_info']['phone'] : $meta['phone']; $special_instructions = !empty($_SESSION['mp_shipping_info']['special_instructions']) ? $_SESSION['mp_shipping_info']['special_instructions'] : ''; $content = ''; //don't show if logged in if (!is_user_logged_in() && !defined('MP_HIDE_LOGIN_OPTION') && $editable) { $content .= '<p class="mp_cart_login_msg">'; $content .= __('Made a purchase here before?', 'mp') . ' <a class="mp_cart_login_link" href="' . wp_login_url(mp_checkout_step_url('shipping')) . '">' . __('Login now to retrieve your saved info »', 'mp') . '</a>'; $content .= '</p>'; } if ($editable) { $content .= '<form id="mp_shipping_form" method="post" action="">'; $content .= apply_filters('mp_checkout_before_shipping', ''); $content .= '<table class="mp_cart_shipping">'; $content .= '<thead><tr>'; $content .= '<th colspan="2">' . ($mp->download_only_cart($mp->get_cart_contents()) ? __('Enter Your Checkout Information:', 'mp') : __('Enter Your Shipping Information:', 'mp')) . '</th>'; $content .= '</tr></thead>'; $content .= '<tbody>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Email:', 'mp') . '*</td><td>'; $content .= apply_filters('mp_checkout_error_email', ''); $content .= '<input size="35" name="email" type="text" value="' . esc_attr($email) . '" /></td>'; $content .= '</tr>'; if (!$mp->download_only_cart($mp->get_cart_contents())) { $content .= '<tr>'; $content .= '<td align="right">' . __('Full Name:', 'mp') . '*</td><td>'; $content .= apply_filters('mp_checkout_error_name', ''); $content .= '<input size="35" name="name" type="text" value="' . esc_attr($name) . '" /> </td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Country:', 'mp') . '*</td><td>'; $content .= apply_filters('mp_checkout_error_country', ''); $content .= '<select id="mp_country" name="country" class="mp_shipping_field">'; foreach ((array) $settings['shipping']['allowed_countries'] as $code) { $content .= '<option value="' . $code . '"' . selected($country, $code, false) . '>' . esc_attr($mp->countries[$code]) . '</option>'; } $content .= '</select>'; $content .= '</td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Address:', 'mp') . '*</td><td>'; $content .= apply_filters('mp_checkout_error_address1', ''); $content .= '<input size="45" name="address1" type="text" value="' . esc_attr($address1) . '" /><br />'; $content .= '<small><em>' . __('Street address, P.O. box, company name, c/o', 'mp') . '</em></small>'; $content .= '</td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Address 2:', 'mp') . ' </td><td>'; $content .= '<input size="45" name="address2" type="text" value="' . esc_attr($address2) . '" /><br />'; $content .= '<small><em>' . __('Apartment, suite, unit, building, floor, etc.', 'mp') . '</em></small>'; $content .= '</td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('City:', 'mp') . '*</td><td>'; $content .= apply_filters('mp_checkout_error_city', ''); $content .= '<input size="25" id="mp_city" class="mp_shipping_field" name="city" type="text" value="' . esc_attr($city) . '" /></td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('State/Province/Region:', 'mp') . '*</td><td id="mp_province_field">'; $content .= apply_filters('mp_checkout_error_state', ''); $content .= mp_province_field($country, $state) . '</td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Postal/Zip Code:', 'mp') . '*</td><td>'; $content .= apply_filters('mp_checkout_error_zip', ''); $content .= '<input size="10" class="mp_shipping_field" id="mp_zip" name="zip" type="text" value="' . esc_attr($zip) . '" /></td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Phone Number:', 'mp') . '</td><td>'; $content .= '<input size="20" name="phone" type="text" value="' . esc_attr($phone) . '" /></td>'; $content .= '</tr>'; } if ($settings['special_instructions']) { $content .= '<tr>'; $content .= '<td align="right">' . __('Special Instructions:', 'mp') . '</td><td>'; $content .= '<textarea name="special_instructions" rows="2" style="width: 100%;">' . esc_textarea($special_instructions) . '</textarea></td>'; $content .= '</tr>'; } $content .= apply_filters('mp_checkout_shipping_field', ''); $content .= '</tbody>'; $content .= '</table>'; $content .= apply_filters('mp_checkout_after_shipping', ''); $content .= '<p class="mp_cart_direct_checkout">'; $content .= '<input type="submit" name="mp_shipping_submit" id="mp_shipping_submit" value="' . __('Continue Checkout »', 'mp') . '" />'; $content .= '</p>'; $content .= '</form>'; } else { if (!$mp->download_only_cart($mp->get_cart_contents())) { //is not editable and not download only $content .= '<table class="mp_cart_shipping">'; $content .= '<thead><tr>'; $content .= '<th>' . __('Shipping Information:', 'mp') . '</th>'; $content .= '<th align="right"><a href="' . mp_checkout_step_url('shipping') . '">' . __('Edit', 'mp') . '</a></th>'; $content .= '</tr></thead>'; $content .= '<tbody>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Email:', 'mp') . '</td><td>'; $content .= esc_attr($email) . ' </td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Full Name:', 'mp') . '</td><td>'; $content .= esc_attr($name) . '</td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Address:', 'mp') . '</td>'; $content .= '<td>' . esc_attr($address1) . '</td>'; $content .= '</tr>'; if ($address2) { $content .= '<tr>'; $content .= '<td align="right">' . __('Address 2:', 'mp') . '</td>'; $content .= '<td>' . esc_attr($address2) . '</td>'; $content .= '</tr>'; } $content .= '<tr>'; $content .= '<td align="right">' . __('City:', 'mp') . '</td>'; $content .= '<td>' . esc_attr($city) . '</td>'; $content .= '</tr>'; if ($state) { $content .= '<tr>'; $content .= '<td align="right">' . __('State/Province/Region:', 'mp') . '</td>'; $content .= '<td>' . esc_attr($state) . '</td>'; $content .= '</tr>'; } $content .= '<tr>'; $content .= '<td align="right">' . __('Postal/Zip Code:', 'mp') . '</td>'; $content .= '<td>' . esc_attr($zip) . '</td>'; $content .= '</tr>'; $content .= '<tr>'; $content .= '<td align="right">' . __('Country:', 'mp') . '</td>'; $content .= '<td>' . $mp->countries[$country] . '</td>'; $content .= '</tr>'; if ($phone) { $content .= '<tr>'; $content .= '<td align="right">' . __('Phone Number:', 'mp') . '</td>'; $content .= '<td>' . esc_attr($phone) . '</td>'; $content .= '</tr>'; } $content .= apply_filters('mp_checkout_shipping_field_readonly', ''); $content .= '</tbody>'; $content .= '</table>'; } } if ($echo) { echo $content; } else { return $content; } }