/** * Perform an availability lookup and return the results to the current page * * @param str $date Required: The date to check * * @return */ function mdjm_availability_by_ajax() { global $mdjm_settings; $date = $_POST['check_date']; $avail_text = !empty($_POST['avail_text']) ? $_POST['avail_text'] : $mdjm_settings['availability']['availability_check_pass_text']; $unavail_text = !empty($_POST['unavail_text']) ? $_POST['unavail_text'] : $mdjm_settings['availability']['availability_check_fail_text']; $search = array('{EVENT_DATE}', '{EVENT_DATE_SHORT}'); $replace = array(date('l, jS F Y', strtotime($date)), date(MDJM_SHORTDATE_FORMAT, strtotime($date))); $avail = dj_available('', '', $date); if (isset($avail) && !empty($avail['available'])) { $result['result'] = 'available'; $result['message'] = $GLOBALS['mdjm']->filter_content('', '', str_replace($search, $replace, $avail_text)); } else { $result['result'] = 'unavailable'; $result['message'] = $GLOBALS['mdjm']->filter_content('', '', str_replace($search, $replace, $unavail_text)); } echo json_encode($result); die; }
/** * Front-end display of widget. * * @see WP_Widget::widget() * * @param array $args Widget arguments. * @param array $instance Saved values from database. */ public function widget($args, $instance) { global $mdjm_settings, $mdjm; if (!empty($instance['ajax'])) { self::ajax($args, $instance); } echo $args['before_widget']; if (!empty($instance['title'])) { echo $args['before_title'] . apply_filters('widget_title', $instance['title']) . $args['after_title']; } /* Check for form submission & process */ if (isset($_POST['mdjm_widget_avail_submit']) && $_POST['mdjm_widget_avail_submit'] == $instance['submit_text']) { $dj_avail = dj_available('', '', $_POST['widget_check_date']); if (isset($dj_avail)) { if (!empty($dj_avail['available'])) { if (isset($instance['available_action']) && $instance['available_action'] != 'text') { ?> <script type="text/javascript"> window.location = '<?php echo mdjm_get_formatted_url($instance['available_action'], true) . 'mdjm_avail=1&mdjm_avail_date=' . $_POST['widget_check_date']; ?> '; </script> <?php } } else { if (isset($instance['unavailable_action']) && $instance['unavailable_action'] != 'text') { ?> <script type="text/javascript"> window.location = '<?php echo mdjm_get_formatted_url($instance['unavailable_action']); ?> '; </script> <?php } } } // if( isset( $dj_avail ) ) } // if( isset( $_POST['mdjm_avail_submit'] ) ... if (isset($instance['intro']) && !empty($instance['intro'])) { if (isset($_POST['mdjm_widget_avail_submit']) && $_POST['mdjm_widget_avail_submit'] == $instance['submit_text']) { $search = array('{EVENT_DATE}', '{EVENT_DATE_SHORT}'); $replace = array(date('l, jS F Y', strtotime($_POST['widget_check_date'])), date(MDJM_SHORTDATE_FORMAT, strtotime($_POST['widget_check_date']))); } if (!isset($_POST['mdjm_widget_avail_submit']) || $_POST['mdjm_widget_avail_submit'] != $instance['submit_text']) { echo '<div id="widget_avail_intro">' . $instance['intro'] . '</div>'; } else { if (!empty($instance['ajax'])) { ?> <div id="widget_availability_result"></div> <?php } else { if (!empty($dj_avail['available']) && $instance['available_action'] == 'text' && !empty($instance['available_text'])) { echo str_replace($search, $replace, $instance['available_text']); } else { echo str_replace($search, $replace, $instance['unavailable_text']); } } } } $widget_template = mdjm_get_template_part('availability', 'widget', false); include_once $widget_template; echo $args['after_widget']; }
/** * Front-end display of widget. * * @see WP_Widget::widget() * * @param arr $args Widget arguments. * @param arr $instance Saved values from database. */ public function widget($args, $instance) { add_action('wp_head', array(&$this, 'datepicker')); if (!empty($instance['ajax'])) { self::ajax($args, $instance); } echo $args['before_widget']; if (!empty($instance['title'])) { echo $args['before_title'] . apply_filters('widget_title', $instance['title']) . $args['after_title']; } /* Check for form submission & process */ if (isset($_POST['mdjm_widget_avail_submit']) && $_POST['mdjm_widget_avail_submit'] == $instance['submit_text']) { $dj_avail = dj_available('', $_POST['widget_check_date']); if (isset($dj_avail)) { if (!empty($dj_avail['available'])) { if (isset($instance['available_action']) && $instance['available_action'] != 'text') { ?> <script type="text/javascript"> window.location = '<?php echo mdjm_get_formatted_url($instance['available_action']) . 'mdjm_avail=1&mdjm_avail_date=' . $_POST['widget_check_date']; ?> '; </script> <?php } } else { if (isset($instance['unavailable_action']) && $instance['unavailable_action'] != 'text') { ?> <script type="text/javascript"> window.location = '<?php echo mdjm_get_formatted_url($instance['unavailable_action']); ?> '; </script> <?php } } } // if( isset( $dj_avail ) ) } // if( isset( $_POST['mdjm_avail_submit'] ) ... /* We need the jQuery Calendar */ wp_enqueue_script('jquery-ui-datepicker'); wp_enqueue_style('jquery-ui-css', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css'); mdjm_insert_datepicker(array('class' => 'mdjm_widget_date', 'altfield' => 'widget_check_date', 'mindate' => '1')); if (isset($instance['intro']) && !empty($instance['intro'])) { if (isset($_POST['mdjm_widget_avail_submit']) && $_POST['mdjm_widget_avail_submit'] == $instance['submit_text']) { $search = array('{EVENT_DATE}', '{EVENT_DATE_SHORT}'); $replace = array(date('l, jS F Y', strtotime($_POST['widget_check_date'])), mdjm_format_short_date($_POST['widget_check_date'])); } if (!isset($_POST['mdjm_widget_avail_submit']) || $_POST['mdjm_widget_avail_submit'] != $instance['submit_text']) { echo '<div id="widget_avail_intro">' . $instance['intro'] . '</div>'; } else { if (!empty($instance['ajax'])) { ?> <div id="widget_availability_result"></div> <?php } else { if (!empty($dj_avail['available']) && $instance['available_action'] == 'text' && !empty($instance['available_text'])) { echo str_replace($search, $replace, $instance['available_text']); } else { echo str_replace($search, $replace, $instance['unavailable_text']); } } } } ?> <form name="mdjm-widget-availability-check" id="mdjm-widget-availability-check" method="post"> <label for="widget_avail_date"><?php echo $instance['label']; ?> </label> <input type="text" name="widget_avail_date" id="widget_avail_date" class="mdjm_widget_date" style="z-index:99;" placeholder="<?php echo mdjm_format_datepicker_date(); ?> " /> <input type="hidden" name="widget_check_date" id="widget_check_date" value="" /> <p<?php echo isset($instance['submit_centre']) && $instance['submit_centre'] == 'Y' ? ' style="text-align:center"' : ''; ?> > <input type="submit" name="mdjm_widget_avail_submit" id="mdjm_widget_avail_submit" value="<?php echo $instance['submit_text']; ?> " /> <div id="widget_pleasewait" class="page-content" style="display: none;"><?php _e('Please wait...', 'mobile-dj-manager'); ?> <img src="<?php echo MDJM_PLUGIN_URL; ?> /assets/images/loading.gif" alt="<?php _e('Please wait...', 'mobile-dj-manager'); ?> " /></div> </form> <script type="text/javascript"> jQuery(document).ready(function($){ // Configure the field validator $('#mdjm-widget-availability-check').validate({ rules: { widget_avail_date: { required: true, }, }, messages: { widget_avail_date: { required: "<?php _e('Please enter a date', 'mobile-dj-manager'); ?> ", }, }, errorClass: "mdjm-form-error", validClass: "mdjm-form-valid", } ); }); </script> <?php echo $args['after_widget']; }
/** * Execute the availability check * * @params * * @return */ public static function check_availability() { global $mdjm, $mdjm_settings; if (!isset($_POST['mdjm_avail_submit']) || !isset($_POST['check_date'])) { return; } self::$dj_avail = dj_available('', '', $_POST['check_date']); if (isset(self::$dj_avail)) { // Available & redirect activatated if (!empty(self::$dj_avail['available']) && isset($mdjm_settings['availability']['availability_check_pass_page']) && $mdjm_settings['availability']['availability_check_pass_page'] != 'text') { wp_redirect(mdjm_get_formatted_url($mdjm_settings['availability']['availability_check_pass_page']) . 'mdjm_avail=1&mdjm_avail_date=' . $_POST['check_date']); exit; } else { if (isset($mdjm_settings['availability']['availability_check_fail_page']) && $mdjm_settings['availability']['availability_check_fail_page'] != 'text') { wp_redirect(mdjm_get_formatted_url($mdjm_settings['availability']['availability_check_fail_page'])); exit; } } } }