本文整理汇总了PHP中birch_ns函数的典型用法代码示例。如果您正苦于以下问题:PHP birch_ns函数的具体用法?PHP birch_ns怎么用?PHP birch_ns使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了birch_ns函数的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: birch_ns
birch_ns('birchschedule.model.cpt.staff', function ($ns) {
global $birchschedule;
$ns->init = function () use($ns, $birchschedule) {
$birchschedule->model->pre_save->when($ns->is_model_staff, $ns->pre_save);
$birchschedule->model->post_get->when($ns->is_model_staff, $ns->post_get);
};
$ns->is_model_staff = function ($model) {
return $model['post_type'] === 'birs_staff';
};
$ns->pre_save = function ($staff, $config) {
birch_assert(is_array($staff) && isset($staff['post_type']));
if (isset($staff['_birs_assigned_services'])) {
$staff['_birs_assigned_services'] = serialize($staff['_birs_assigned_services']);
}
if (isset($staff['_birs_staff_schedule'])) {
$staff['_birs_staff_schedule'] = serialize($staff['_birs_staff_schedule']);
}
return $staff;
};
$ns->post_get = function ($staff) {
birch_assert(is_array($staff) && isset($staff['post_type']));
if (isset($staff['post_title'])) {
$staff['_birs_staff_name'] = $staff['post_title'];
}
if (isset($staff['_birs_assigned_services'])) {
$assigned_services = $staff['_birs_assigned_services'];
$assigned_services = unserialize($assigned_services);
$assigned_services = $assigned_services ? $assigned_services : array();
$staff['_birs_assigned_services'] = $assigned_services;
}
if (isset($staff['_birs_staff_schedule'])) {
$schedule = $staff['_birs_staff_schedule'];
if (!isset($schedule)) {
$schedule = array();
} else {
$schedule = unserialize($schedule);
}
$schedule = $schedule ? $schedule : array();
$staff['_birs_staff_schedule'] = $schedule;
}
if (isset($staff['post_content'])) {
$staff['_birs_staff_description'] = $staff['post_content'];
}
return $staff;
};
});
示例2: birch_ns
<?php
birch_ns('birchschedule.model.cpt.payment', function ($ns) {
global $birchschedule;
birch_defn($ns, 'init', function () use($ns, $birchschedule) {
birch_defmethod($birchschedule->model, 'pre_save', 'birs_payment', $ns->pre_save);
birch_defmethod($birchschedule->model, 'post_get', 'birs_payment', $ns->post_get);
});
birch_defn($ns, 'pre_save', function ($payment, $config) {
birch_assert(is_array($payment) && isset($payment['post_type']));
if (isset($payment['_birs_payment_amount'])) {
$payment['_birs_payment_amount'] = floatval($payment['_birs_payment_amount']);
}
return $payment;
});
birch_defn($ns, 'post_get', function ($payment) {
birch_assert(is_array($payment) && isset($payment['post_type']));
$payment['_birs_payment_amount'] = floatval($payment['_birs_payment_amount']);
return $payment;
});
});
示例3: birch_ns
birch_ns('birchschedule.view.appointments.edit', function ($ns) {
global $birchschedule;
birch_defn($ns, 'init', function () use($ns, $birchschedule) {
add_action('admin_init', array($ns, 'wp_admin_init'));
add_action('init', array($ns, 'wp_init'));
add_action('birchschedule_view_register_common_scripts_after', array($ns, 'register_scripts'));
birch_defmethod($birchschedule->view, 'load_post_edit', 'birs_appointment', $ns->load_post_edit);
birch_defmethod($birchschedule->view, 'enqueue_scripts_post_edit', 'birs_appointment', $ns->enqueue_scripts_post_edit);
});
birch_defn($ns, 'wp_init', function () use($ns) {
global $birchschedule;
$birchschedule->view->register_script_data_fn('birchschedule_view_appointments_edit', 'birchschedule_view_appointments_edit', array($ns, 'get_script_data_fn_view_appointments_edit'));
});
birch_defn($ns, 'wp_admin_init', function () use($ns) {
});
birch_defn($ns, 'get_script_data_fn_view_appointments_edit', function () use($ns) {
return array('services_staff_map' => $ns->get_services_staff_map(), 'locations_map' => $ns->get_locations_map(), 'services_map' => $ns->get_services_map(), 'locations_staff_map' => $ns->get_locations_staff_map(), 'locations_services_map' => $ns->get_locations_services_map(), 'locations_order' => $ns->get_locations_listing_order(), 'staff_order' => $ns->get_staff_listing_order(), 'services_order' => $ns->get_services_listing_order());
});
birch_defn($ns, 'register_scripts', function () use($ns) {
global $birchschedule;
$version = $birchschedule->get_product_version();
wp_register_script('birchschedule_view_appointments_edit', $birchschedule->plugin_url() . '/assets/js/view/appointments/edit/base.js', array('birchschedule_view_admincommon', 'birchschedule_view', 'jquery-ui-datepicker'), "{$version}");
});
birch_defn($ns, 'get_locations_map', function () {
global $birchschedule;
return $birchschedule->model->get_locations_map();
});
birch_defn($ns, 'get_services_map', function () {
global $birchschedule;
return $birchschedule->model->get_services_map();
});
birch_defn($ns, 'get_locations_staff_map', function () {
global $birchschedule;
return $birchschedule->model->get_locations_staff_map();
});
birch_defn($ns, 'get_locations_services_map', function () {
global $birchschedule;
return $birchschedule->model->get_locations_services_map();
});
birch_defn($ns, 'get_services_staff_map', function () {
global $birchschedule;
return $birchschedule->model->get_services_staff_map();
});
birch_defn($ns, 'get_services_locations_map', function () {
global $birchschedule;
return $birchschedule->model->get_services_locations_map();
});
birch_defn($ns, 'get_locations_listing_order', function () {
global $birchschedule;
return $birchschedule->model->get_locations_listing_order();
});
birch_defn($ns, 'get_staff_listing_order', function () {
global $birchschedule;
return $birchschedule->model->get_staff_listing_order();
});
birch_defn($ns, 'get_services_listing_order', function () {
global $birchschedule;
return $birchschedule->model->get_services_listing_order();
});
birch_defn($ns, 'load_post_edit', function ($arg) use($ns) {
add_action('add_meta_boxes', array($ns, 'add_meta_boxes'));
});
birch_defn($ns, 'enqueue_scripts_post_edit', function ($arg) {
global $birchschedule;
$birchschedule->view->register_3rd_scripts();
$birchschedule->view->register_3rd_styles();
$birchschedule->view->enqueue_scripts(array('birchschedule_view_appointments_edit'));
$birchschedule->view->enqueue_styles(array('birchschedule_appointments_edit'));
});
birch_defn($ns, 'add_meta_boxes', function () use($ns) {
add_meta_box('meta_box_birs_appointment_edit_info', __('Appointment Info', 'birchschedule'), array($ns, 'render_appointment_info'), 'birs_appointment', 'normal', 'high');
add_meta_box('meta_box_birs_appointment_edit_actions', __('Actions', 'birchschedule'), array($ns, 'render_actions'), 'birs_appointment', 'side', 'high');
});
birch_defn($ns, 'get_back_to_calendar_url', function () use($ns) {
global $birchschedule;
$back_url = admin_url('admin.php?page=birchschedule_calendar');
$hash_string = $birchschedule->view->get_query_string($_GET, array('calview', 'locationid', 'staffid', 'currentdate'));
if ($hash_string) {
$back_url = $back_url . '#' . $hash_string;
}
return $back_url;
});
birch_defn($ns, 'render_actions', function ($post) use($ns) {
$back_url = $ns->get_back_to_calendar_url();
?>
<div class="submitbox">
<div style="float:left;">
<a href="<?php
echo $back_url;
?>
">
<?php
_e('Back to Calendar', 'birchschedule');
?>
</a>
</div>
<div class="clear"></div>
</div>
<?php
});
//.........这里部分代码省略.........
示例4: birch_ns
birch_ns('birchpress.view', function ($ns) {
$scripts_data = array();
$enqueued_scripts = array();
$localized_scripts = array();
$printed_scripts = array();
birch_defn($ns, 'init', function () use($ns) {
add_action('init', array($ns, 'wp_init'));
add_action('admin_init', array($ns, 'wp_admin_init'));
});
birch_defn($ns, 'wp_init', function () use($ns) {
if (!defined('DOING_AJAX')) {
$ns->register_core_scripts();
add_action('wp_print_scripts', array($ns, 'localize_scripts'));
if (is_admin()) {
add_action('admin_print_footer_scripts', array($ns, 'localize_scripts'), 9);
add_action('admin_print_footer_scripts', array($ns, 'post_print_scripts'), 11);
} else {
add_action('wp_print_footer_scripts', array($ns, 'localize_scripts'), 9);
add_action('wp_print_footer_scripts', array($ns, 'post_print_scripts'), 11);
}
}
});
birch_defn($ns, 'wp_admin_init', function () use($ns) {
add_action('load-post.php', function () use($ns) {
$post_type = $ns->get_current_post_type();
$ns->load_post_edit(array('post_type' => $post_type));
});
add_action('load-post-new.php', function () use($ns) {
$post_type = $ns->get_current_post_type();
$ns->load_post_new(array('post_type' => $post_type));
});
add_action('admin_enqueue_scripts', function ($hook) use($ns) {
$post_type = $ns->get_current_post_type();
if ($hook == 'post-new.php') {
$ns->enqueue_scripts_post_new(array('post_type' => $post_type));
}
if ($hook == 'post.php') {
$ns->enqueue_scripts_post_edit(array('post_type' => $post_type));
}
if ($hook == 'edit.php' && isset($_GET['post_type'])) {
$post_type = $_GET['post_type'];
$ns->enqueue_scripts_post_list(array('post_type' => $post_type));
}
});
add_action('save_post', function ($post_id, $post) use($ns) {
if (!isset($_POST['action']) || $_POST['action'] !== 'editpost') {
return;
}
if (empty($post_id) || empty($post) || empty($_POST)) {
return;
}
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
if (is_int(wp_is_post_revision($post))) {
return;
}
if (is_int(wp_is_post_autosave($post))) {
return;
}
$post_a = (array) $post;
$ns->save_post($post_a);
}, 10, 2);
add_filter('wp_insert_post_data', function ($post_data, $post_attr) use($ns) {
if (!isset($_POST['action']) || $_POST['action'] !== 'editpost') {
return $post_data;
}
if ($post_data['post_status'] == 'auto-draft') {
return $post_data;
}
return $ns->pre_save_post($post_data, $post_attr);
}, 10, 2);
});
birch_defn($ns, 'get_post_type_lookup_config', function () {
return array('key' => 'post_type', 'lookup_table' => array());
});
birch_defmulti($ns, 'enqueue_scripts_post_new', $ns->get_post_type_lookup_config, function ($arg) {
});
birch_defmulti($ns, 'enqueue_scripts_post_edit', $ns->get_post_type_lookup_config, function ($arg) {
});
birch_defmulti($ns, 'enqueue_scripts_post_list', $ns->get_post_type_lookup_config, function ($arg) {
});
birch_defmulti($ns, 'load_post_edit', $ns->get_post_type_lookup_config, function ($arg) {
});
birch_defmulti($ns, 'load_post_new', $ns->get_post_type_lookup_config, function ($arg) {
});
birch_defmulti($ns, 'save_post', $ns->get_post_type_lookup_config, function ($post_a) {
});
birch_defmulti($ns, 'pre_save_post', $ns->get_post_type_lookup_config, function ($post_data, $post_attr) {
return $post_data;
});
birch_defn($ns, 'get_wp_screen', function ($hook_name) use($ns) {
if (substr($hook_name, -4) !== '.php') {
$hook_name = $hook_name . '.php';
}
$screen = WP_Screen::get($hook_name);
return $screen;
});
birch_defn($ns, 'register_3rd_scripts', function () use($ns) {
global $birchpress;
//.........这里部分代码省略.........
示例5: birch_ns
birch_ns('birchschedule.model.schedule', function ($ns) {
$_ns_data = new stdClass();
$ns->init = function () use($ns, $_ns_data) {
$_ns_data->step_length = 5;
};
$ns->get_staff_calculated_schedule_by_location = function ($staff_id, $location_id) use($ns) {
global $birchschedule;
$location_schedule = $birchschedule->model->get_staff_schedule_by_location($staff_id, $location_id);
$new_schedules = array();
if (isset($location_schedule['schedules'])) {
$schedules = $location_schedule['schedules'];
for ($week_day = 0; $week_day < 7; $week_day++) {
$new_schedules[] = array();
}
foreach ($schedules as $schedule_id => $schedule) {
$schedule_date_start = $birchschedule->model->schedule->get_staff_schedule_date_start($staff_id, $location_id, $schedule_id);
$schedule_date_end = $birchschedule->model->schedule->get_staff_schedule_date_end($staff_id, $location_id, $schedule_id);
foreach ($new_schedules as $week_day => $new_schedule) {
if (isset($schedule['weeks'][$week_day])) {
$new_schedules[$week_day][] = array('minutes_start' => $schedule['minutes_start'], 'minutes_end' => $schedule['minutes_end'], 'date_start' => $schedule_date_start, 'date_end' => $schedule_date_end);
}
}
}
}
$location_schedule['schedules'] = $new_schedules;
return $location_schedule;
};
$ns->get_staff_calculated_schedule = function ($staff_id) use($ns) {
global $birchschedule;
$staff = $birchschedule->model->get($staff_id, array('base_keys' => array(), 'meta_keys' => array('_birs_staff_schedule')));
$staff_schedule = $staff['_birs_staff_schedule'];
$new_all_schedule = array();
foreach ($staff_schedule as $location_id => $schedule) {
$new_all_schedule[$location_id] = $birchschedule->model->schedule->get_staff_calculated_schedule_by_location($staff_id, $location_id);
}
return $new_all_schedule;
};
$ns->get_all_calculated_schedule = function () use($ns) {
global $birchschedule;
$staff = $birchschedule->model->query(array('post_type' => 'birs_staff'));
$allschedule = array();
foreach ($staff as $thestaff) {
$schedule = $birchschedule->model->schedule->get_staff_calculated_schedule($thestaff['ID']);
$allschedule[$thestaff['ID']] = $schedule;
}
return $allschedule;
};
$ns->get_staff_schedule_date_start = function ($staff_id, $location_id, $schedule_id) {
return '';
};
$ns->get_staff_schedule_date_end = function ($staff_id, $location_id, $schedule_id) {
return '';
};
$ns->get_staff_exception_date_start = function ($staff_id, $location_id, $exception_id) {
return '';
};
$ns->get_staff_exception_date_end = function ($staff_id, $location_id, $exception_id) {
return '';
};
$ns->get_avaliable_schedules_by_date = function ($schedules, $date) use($ns) {
global $birchpress;
$new_schedules = array();
$mysql_format = 'Y-m-d';
foreach ($schedules as $schedule) {
if ($schedule['date_start']) {
$date_start = $birchpress->util->get_wp_datetime(array('date' => $schedule['date_start'], 'time' => 0))->format($mysql_format);
} else {
$date_start = "";
}
if ($schedule['date_end']) {
$date_end = $birchpress->util->get_wp_datetime(array('date' => $schedule['date_end'], 'time' => 0))->format($mysql_format);
} else {
$date_end = 'a';
}
$current_date = $date->format($mysql_format);
if ($date_start <= $current_date && $date_end >= $current_date) {
$new_schedules[] = array('minutes_start' => $schedule['minutes_start'], 'minutes_end' => $schedule['minutes_end']);
}
}
return $new_schedules;
};
$ns->get_exceptions_blocks = function ($exceptions) use($ns, $_ns_data) {
$exceptions_blocks = array();
$min_blocks = array();
foreach ($exceptions as $exception) {
$start = $exception['minutes_start'];
$end = $exception['minutes_end'];
if ($end - $start === $_ns_data->step_length) {
$min_blocks[] = $start;
} else {
$exception_blocks = array();
for ($i = $start + $_ns_data->step_length; $i < $end; $i += $_ns_data->step_length) {
$exception_blocks[] = $i;
}
$exceptions_blocks = array_unique(array_merge($exceptions_blocks, $exception_blocks));
}
}
sort($exceptions_blocks);
$new_min_blocks = array();
foreach ($min_blocks as $min_block) {
//.........这里部分代码省略.........
示例6: birch_ns
birch_ns('birchpress.util', function ($ns) {
$_ns_data = new stdClass();
$ns->init = function () use($ns, $_ns_data) {
$_ns_data->request_actions = array();
add_filter('http_api_transports', array($ns, 'http_api_transports'), 20);
add_action('init', array($ns, 'call_request_function'), 100);
};
$ns->http_api_transports = function ($transports) {
return array('streams', 'curl');
};
$ns->call_request_function = function () use($ns, $_ns_data) {
$action = empty($_GET['birchpress_action']) ? '' : $_GET['birchpress_action'];
if (!empty($action)) {
$args = empty($_REQUEST['args']) ? '[]' : $_REQUEST['args'];
$args = json_decode(stripslashes_deep($args), true);
if (isset($_ns_data->request_actions[$action])) {
$fn = $_ns_data->request_actions[$action];
call_user_func_array($fn, $args);
}
die;
}
};
$ns->get_remote_call_url = function ($action) use($ns) {
$url = add_query_arg(array('birchpress_action' => $action), home_url('/index.php'));
return $url;
};
$ns->async_run_task = function ($task) use($ns) {
$url = $ns->get_remote_call_url($task['action']);
wp_remote_post($url, array('timeout' => 0.01, 'blocking' => false, 'sslverify' => apply_filters('https_local_ssl_verify', true), 'body' => array('args' => json_encode($task['args']))));
};
$ns->enable_remote_call = function ($fn) use($ns, $_ns_data) {
if (!is_a($fn, 'Birch_Fn')) {
return;
}
$fn_name = $fn->get_full_name();
$_ns_data->request_actions[$fn_name] = $fn;
};
$ns->get_wp_screen = function ($hook_name) use($ns) {
if (substr($hook_name, -4) !== '.php') {
$hook_name = $hook_name . '.php';
}
$screen = WP_Screen::get($hook_name);
return $screen;
};
$ns->has_shortcode = function ($shortcode = NULL) use($ns) {
$post_to_check = get_post(get_the_ID());
$found = false;
if (!$shortcode) {
return $found;
}
if (stripos($post_to_check->post_content, '[' . $shortcode) !== FALSE && stripos($post_to_check->post_content, '[[' . $shortcode) == FALSE) {
$found = TRUE;
}
return $found;
};
$ns->render_html_options = function ($options, $selection = false, $default = false) use($ns) {
if ($selection == false && $default != false) {
$selection = $default;
}
foreach ($options as $val => $text) {
if ($selection == $val) {
$selected = ' selected="selected" ';
} else {
$selected = '';
}
echo "<option value='{$val}' {$selected}>{$text}</option>";
}
};
$ns->get_first_day_of_week = function () use($ns) {
return get_option('start_of_week', 0);
};
$ns->starts_with = function ($haystack, $needle) {
return !strncmp($haystack, $needle, strlen($needle));
};
$ns->ends_with = function ($haystack, $needle) {
$length = strlen($needle);
if ($length == 0) {
return true;
}
return substr($haystack, -$length) === $needle;
};
$ns->current_page_url = function () use($ns) {
$pageURL = 'http';
if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") {
$pageURL .= "s";
}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
}
return $pageURL;
};
$ns->new_error = function ($code = '', $message = '', $data = '') use($ns) {
return new WP_Error($code, $message, $data);
};
$ns->add_error_item = function ($errors, $code, $message, $data = '') use($ns) {
$errors->add($code, $message, $data);
return $errors;
//.........这里部分代码省略.........
示例7: birch_ns
birch_ns('birchschedule.view.appointments.edit.clientlist.edit', function ($ns) {
global $birchschedule;
birch_defn($ns, 'init', function () use($ns) {
add_action('admin_init', array($ns, 'wp_admin_init'));
add_action('birchschedule_view_register_common_scripts_after', array($ns, 'register_scripts'));
});
birch_defn($ns, 'wp_admin_init', function () use($ns, $birchschedule) {
add_action('wp_ajax_birchschedule_view_appointments_edit_clientlist_edit_save', array($ns, 'ajax_save'));
add_action('birchschedule_view_enqueue_scripts_post_edit_after', array($ns, 'enqueue_scripts_post_edit'));
add_action('birchschedule_view_appointments_edit_clientlist_render_more_rows_after', array($ns, 'render_row'), 20, 3);
add_filter('birchschedule_view_appointments_edit_clientlist_get_item_actions', array($ns, 'add_item_action'), 20, 2);
});
birch_defn($ns, 'register_scripts', function () use($birchschedule) {
$version = $birchschedule->get_product_version();
wp_register_script('birchschedule_view_appointments_edit_clientlist_edit', $birchschedule->plugin_url() . '/assets/js/view/appointments/edit/clientlist/edit/base.js', array('birchschedule_view_admincommon', 'birchschedule_view'), "{$version}");
});
birch_defn($ns, 'enqueue_scripts_post_edit', function ($arg) {
if ($arg['post_type'] != 'birs_appointment') {
return;
}
global $birchschedule;
$birchschedule->view->register_3rd_scripts();
$birchschedule->view->register_3rd_styles();
$birchschedule->view->enqueue_scripts(array('birchschedule_view_appointments_edit_clientlist_edit'));
});
birch_defn($ns, 'add_item_action', function ($item_actions, $item) {
$action_html = '<a href="javascript:void(0);" data-item-id="%s">%s</a>';
$item_actions['edit'] = sprintf($action_html, $item['ID'], __('Edit', 'birchschedule'));
return $item_actions;
});
birch_defn($ns, 'render_row', function ($wp_list_table, $item, $row_class) use($ns) {
$client_id = $item['ID'];
$appointment_id = $wp_list_table->appointment_id;
$column_count = $wp_list_table->get_column_count();
$edit_html = $ns->get_client_edit_html($appointment_id, $client_id);
?>
<tr class="<?php
echo $row_class;
?>
birs_row_edit"
id="birs_client_list_row_edit_<?php
echo $client_id;
?>
"
data-item-id = "<?php
echo $client_id;
?>
"
data-edit-html = "<?php
echo esc_attr($edit_html);
?>
">
<td colspan = "<?php
echo $column_count;
?>
">
</td>
</tr>
<?php
});
birch_defn($ns, 'ajax_save', function () use($ns) {
global $birchpress, $birchschedule;
$appointment1on1_errors = $ns->validate_appointment1on1_info();
$client_errors = $ns->validate_client_info();
$email_errors = $ns->validate_duplicated_email();
$errors = array_merge($appointment1on1_errors, $client_errors, $email_errors);
if ($errors) {
$birchschedule->view->render_ajax_error_messages($errors);
}
$client_config = array('base_keys' => array(), 'meta_keys' => $_POST['birs_client_fields']);
$client_info = $birchschedule->view->merge_request(array(), $client_config, $_POST);
$client_info['ID'] = $_POST['birs_client_id'];
$client_id = $birchschedule->model->booking->save_client($client_info);
if (isset($_POST['birs_appointment_fields'])) {
$appointment1on1s_fields = $_POST['birs_appointment_fields'];
} else {
$appointment1on1s_fields = array();
}
$appointment1on1s_config = array('base_keys' => array(), 'meta_keys' => $appointment1on1s_fields);
$appointment1on1s_info = $birchschedule->view->merge_request(array(), $appointment1on1s_config, $_POST);
$appointment1on1s_info['_birs_client_id'] = $_POST['birs_client_id'];
$appointment1on1s_info['_birs_appointment_id'] = $_POST['birs_appointment_id'];
$appointment1on1s_info['_birs_appointment_fields'] = $appointment1on1s_fields;
$birchschedule->model->booking->change_appointment1on1_custom_info($appointment1on1s_info);
$birchschedule->view->render_ajax_success_message(array('code' => 'success', 'message' => ''));
});
birch_defn($ns, 'validate_duplicated_email', function () {
global $birchschedule;
$errors = array();
$client_id = $_POST['birs_client_id'];
if (!isset($_POST['birs_client_email'])) {
return $errors;
}
$email = $_POST['birs_client_email'];
if ($birchschedule->model->booking->if_email_duplicated($client_id, $email)) {
$errors['birs_client_email'] = __('Email already exists.', 'birchschedule') . ' (' . $email . ')';
}
return $errors;
});
//.........这里部分代码省略.........
示例8: birch_ns
birch_ns('birchschedule.view.help', function ($ns) {
global $birchschedule;
$_ns_data = new stdClass();
birch_defn($ns, 'init', function () use($ns, $_ns_data) {
$_ns_data->RUN_ACTION_NAME = "birchschedule_help_action_run";
add_action('admin_init', array($ns, 'wp_admin_init'));
});
birch_defn($ns, 'wp_admin_init', function () use($ns, $_ns_data) {
if (isset($_REQUEST['page']) && $_REQUEST['page'] == 'birchschedule_help') {
$php_code = get_transient('birchschedule_help_php_code');
$ns->run_php_code($php_code);
delete_transient('birchschedule_help_php_code');
$ns->load_page();
}
add_action('birchschedule_view_render_help_page_after', array($ns, 'render_admin_page'));
add_action('admin_post_' . $_ns_data->RUN_ACTION_NAME, array($ns, 'cache_code'));
});
birch_defn($ns, 'run_php_code', function ($code) {
if (!$code) {
return;
} else {
ob_start();
eval($code);
ob_end_clean();
}
});
birch_defn($ns, 'get_screen', function () use($ns) {
global $birchschedule;
$hook_name = $birchschedule->view->get_page_hook('help');
$screen = $birchschedule->view->get_screen($hook_name);
return $screen;
});
birch_defn($ns, 'load_page', function () use($ns) {
$screen = $ns->get_screen();
add_meta_box('birs_help_general', __('Help and Support', 'birchschedule'), array($ns, 'render_help_general'), $screen, 'main', 'default');
add_meta_box('birs_help_version', __('Versions', 'birchschedule'), array($ns, 'render_help_version'), $screen, 'main', 'default');
if (current_user_can('manage_options')) {
add_meta_box('birs_help_run_scripts', __('Tools', 'birchschedule'), array($ns, 'render_run_scripts'), $screen, 'main', 'default');
}
});
birch_defn($ns, 'render_help_version', function () use($ns) {
global $birchschedule, $wp_version, $wpdb;
$version = $birchschedule->get_product_version();
$product_name = $birchschedule->get_product_name();
?>
<div class="wrap">
<table class="form-table">
<tbody>
<tr>
<th><?php
echo "{$product_name}";
?>
</th>
<td><?php
echo "{$version}";
?>
</td>
</tr>
<tr>
<th><?php
echo "WordPress";
?>
</th>
<td><?php
echo "{$wp_version}";
?>
</td>
</tr>
<tr>
<th><?php
echo "PHP";
?>
</th>
<td><?php
echo phpversion();
?>
</td>
</tr>
<tr>
<th><?php
echo "MySQL";
?>
</th>
<td><?php
echo $wpdb->db_version();
?>
</td>
</tr>
</tbody>
</table>
</div>
<?php
});
birch_defn($ns, 'render_help_general', function () {
?>
<div class="padding">
<p>If you have any questions, please refer to <a target="_blank" href="http://www.birchpress.com/support/documentation">documentation</a> first.</p>
<p>If you are using a <a target="_blank" href="http://www.birchpress.com/">premium edition</a>, please submit a ticket <a target="_blank" href="http://www.birchpress.com/support/submit-a-ticket/">here</a>.</p>
<p>If you are using a free version, please submit your question through our <a target="_blank" href="http://www.birchpress.com/support/forums">support forum</a>.</p>
<p>If you find our product helpful, please <a target="_blank" href="http://wordpress.org/extend/plugins/birchschedule">rate it!</a></p>
//.........这里部分代码省略.........
示例9: birch_ns
birch_ns('birchschedule.model.booking', function ($ns) {
global $birchschedule;
birch_defn($ns, 'init', function () use($ns, $birchschedule) {
add_action('birchschedule_model_schedule_get_staff_avaliable_time_after', array($ns, 'record_fully_booked_day'), 20, 5);
add_action('admin_post_birchschedule_model_booking_recheck_fully_booked_days', array($ns, 'admin_post_recheck_fully_booked_days'), 20);
add_action('admin_post_nopriv_birchschedule_model_booking_recheck_fully_booked_days', array($ns, 'admin_post_recheck_fully_booked_days'), 20);
add_action('birchschedule_model_booking_actions_check_if_fully_booked_for', array($ns, 'check_if_fully_booked_for'), 20, 1);
add_action('birchschedule_model_booking_do_change_appointment1on1_status_after', array($ns, 'enqueue_checking_if_fully_booked'), 20, 1);
add_action('birchschedule_model_booking_do_reschedule_appointment1on1_after', array($ns, 'enqueue_checking_if_fully_booked'), 20, 1);
add_action('birchschedule_model_booking_cancel_appointment1on1_after', array($ns, 'enqueue_checking_if_fully_booked'), 20, 1);
add_action('birchschedule_model_booking_do_change_appointment1on1_status_after', array($birchschedule, 'spawn_cron'), 200);
add_action('birchschedule_model_booking_do_reschedule_appointment1on1_after', array($birchschedule, 'spawn_cron'), 200);
add_action('birchschedule_model_booking_cancel_appointment1on1_after', array($birchschedule, 'spawn_cron'), 200);
});
birch_defn($ns, 'get_appointment_title', function ($appointment) use($ns) {
global $birchschedule;
$service = $birchschedule->model->get($appointment['_birs_appointment_service'], array('base_keys' => array('post_title'), 'meta_keys' => array()));
$appointment1on1s = $appointment['appointment1on1s'];
if (sizeof($appointment1on1s) > 1) {
$title = $service['post_title'] . ' - ' . sprintf(__('%s Clients', 'birchschedule'), sizeof($appointment1on1s));
} else {
if (sizeof($appointment1on1s) == 1) {
$appointment1on1s = array_values($appointment1on1s);
$appointment1on1 = $appointment1on1s[0];
$title = $service['post_title'] . ' - ' . $appointment1on1['_birs_client_name'];
} else {
$title = $service['post_title'];
}
}
return $title;
});
birch_defn($ns, 'get_appointment1on1s_by_appointment', function ($appointment_id, $config = array()) use($ns) {
$config = array_merge(array('status' => 'any'), $config);
$appointments = $ns->query_appointments(array('status' => $config['status'], 'appointment_id' => $appointment_id), $config);
if ($appointments) {
$appointment1on1s = $appointments[$appointment_id]['appointment1on1s'];
} else {
$appointment1on1s = array();
}
return $appointment1on1s;
});
birch_defn($ns, 'get_appointment1on1', function ($appointment_id, $client_id, $config = array()) use($ns) {
global $birchschedule;
if (!$config) {
$fields = $birchschedule->model->get_appointment1on1_custom_fields();
$fields = array_merge($fields, array('_birs_client_id', '_birs_appointment_id', 'post_status'));
$config = array('appointment1on1_keys' => $fields);
}
$config = array_merge(array('status' => 'any'), $config);
$appointments = $ns->query_appointments(array('client_id' => $client_id, 'appointment_id' => $appointment_id, 'status' => $config['status']), $config);
if ($appointments) {
$appointment1on1s = $appointments[$appointment_id]['appointment1on1s'];
$appointment1on1s = array_values($appointment1on1s);
return $appointment1on1s[0];
} else {
return false;
}
});
birch_defn($ns, 'query_appointments', function ($criteria, $config = array()) use($ns) {
global $birchschedule;
if (!is_array($criteria)) {
$criteria = array();
}
$default = array('appointment_id' => -1, 'client_id' => -1, 'start' => time(), 'end' => time() + 24 * 60 * 60, 'location_id' => -1, 'staff_id' => -1, 'service_id' => -1, 'status' => 'publish', 'cache_results' => false);
$criteria = array_merge($default, $criteria);
$start = $criteria['start'];
$end = $criteria['end'];
$location_id = $criteria['location_id'];
$staff_id = $criteria['staff_id'];
$service_id = $criteria['service_id'];
$status = $criteria['status'];
$cache_results = $criteria['cache_results'];
if (!is_array($config) || !$config) {
$config = array();
}
if (isset($config['appointment_keys'])) {
$appointment_keys = $config['appointment_keys'];
} else {
$appointment_keys = array();
}
if (isset($config['appointment1on1_keys'])) {
$appointment1on1_keys = $config['appointment1on1_keys'];
} else {
$appointment1on1_keys = array();
}
if (isset($config['client_keys'])) {
$client_keys = $config['client_keys'];
} else {
$client_keys = array();
}
$appointments_criteria = array('post_type' => 'birs_appointment', 'post_status' => 'publish', 'meta_query' => array(array('key' => '_birs_appointment_timestamp', 'value' => $start, 'compare' => '>=', 'type' => 'SIGNED'), array('key' => '_birs_appointment_timestamp', 'value' => $end, 'compare' => '<=', 'type' => 'SIGNED')), 'cache_results' => $cache_results);
if ($location_id != -1) {
if (!is_array($location_id)) {
$appointments_criteria['meta_query'][] = array('key' => '_birs_appointment_location', 'value' => $location_id, 'type' => 'UNSIGNED');
} else {
$appointments_criteria['meta_query'][] = array('key' => '_birs_appointment_location', 'value' => $location_id, 'compare' => 'IN', 'type' => 'UNSIGNED');
}
}
if ($staff_id != -1) {
if (!is_array($staff_id)) {
//.........这里部分代码省略.........
示例10: birch_ns
birch_ns('birchschedule.view.calendar', function ($ns) {
$ns->init = function () use($ns) {
global $birchschedule;
add_action('admin_init', array($ns, 'wp_admin_init'));
$birchschedule->view->register_script_data_fn('birchschedule_view_calendar', 'birchschedule_view_calendar', array($ns, 'get_script_data_fn_view_calendar'));
};
$ns->wp_admin_init = function () use($ns) {
global $birchschedule;
add_action('admin_enqueue_scripts', function ($hook) {
global $birchschedule;
if ($birchschedule->view->get_page_hook('calendar') !== $hook) {
return;
}
$birchschedule->view->calendar->enqueue_scripts();
});
add_action('wp_ajax_birchschedule_view_calendar_query_appointments', array($ns, 'ajax_query_appointments'));
add_action('birchschedule_view_render_calendar_page_after', array($ns, 'render_admin_page'));
};
$ns->get_script_data_fn_view_calendar = function () use($ns) {
return array('default_calendar_view' => $ns->get_default_view(), 'location_map' => $ns->get_locations_map(), 'location_staff_map' => $ns->get_locations_staff_map(), 'location_order' => $ns->get_locations_listing_order(), 'staff_order' => $ns->get_staff_listing_order(), 'slot_minutes' => 15, 'first_hour' => 9);
};
$ns->enqueue_scripts = function () use($ns) {
global $birchschedule;
$birchschedule->view->register_3rd_scripts();
$birchschedule->view->register_3rd_styles();
$birchschedule->view->enqueue_scripts(array('birchschedule_view_calendar', 'birchschedule_view', 'birchschedule_view_admincommon', 'birchschedule_model'));
$birchschedule->view->enqueue_styles(array('fullcalendar_birchpress', 'birchschedule_admincommon', 'birchschedule_calendar', 'select2', 'jgrowl'));
};
$ns->get_default_view = function () {
return 'agendaWeek';
};
$ns->query_appointments = function ($start, $end, $location_id, $staff_id) use($ns) {
global $birchschedule, $birchpress;
$criteria = array('start' => $start, 'end' => $end, 'location_id' => $location_id, 'staff_id' => $staff_id);
$appointments = $birchschedule->model->booking->query_appointments($criteria, array('appointment_keys' => array('_birs_appointment_duration', '_birs_appointment_price', '_birs_appointment_timestamp', '_birs_appointment_service'), 'client_keys' => array('post_title')));
$apmts = array();
foreach ($appointments as $appointment) {
$title = $birchschedule->model->booking->get_appointment_title($appointment);
$appointment['post_title'] = $title;
$duration = intval($appointment['_birs_appointment_duration']);
$price = $appointment['_birs_appointment_price'];
$time_start = $appointment['_birs_appointment_timestamp'];
$time_end = $time_start + $duration * 60;
$time_start = $birchpress->util->get_wp_datetime($time_start)->format('c');
$time_end = $birchpress->util->get_wp_datetime($time_end)->format('c');
$apmt = array('id' => $appointment['ID'], 'title' => $appointment['post_title'], 'start' => $time_start, 'end' => $time_end, 'allDay' => false, 'editable' => true);
$apmts[] = $apmt;
}
return $apmts;
};
$ns->get_locations_map = function () use($ns) {
global $birchschedule;
$i18n_msgs = $birchschedule->view->get_frontend_i18n_messages();
$locations_map = $birchschedule->model->get_locations_map();
$locations_map[-1] = array('post_title' => $i18n_msgs['All Locations']);
return $locations_map;
};
$ns->get_locations_staff_map = function () use($ns) {
global $birchschedule;
$i18n_msgs = $birchschedule->view->get_frontend_i18n_messages();
$map = $birchschedule->model->get_locations_staff_map();
$allstaff = $birchschedule->model->query(array('post_type' => 'birs_staff'), array('meta_keys' => array(), 'base_keys' => array('post_title')));
$new_allstaff = array('-1' => $i18n_msgs['All Providers']);
foreach ($allstaff as $staff_id => $staff) {
$new_allstaff[$staff_id] = $staff['post_title'];
}
$map[-1] = $new_allstaff;
return $map;
};
$ns->get_locations_services_map = function () {
global $birchschedule;
return $birchschedule->model->get_locations_services_map();
};
$ns->get_services_staff_map = function () {
global $birchschedule;
return $birchschedule->model->get_services_staff_map();
};
$ns->get_locations_listing_order = function () {
global $birchschedule;
$locations = $birchschedule->model->get_locations_listing_order();
$locations = array_merge(array(-1), $locations);
return $locations;
};
$ns->get_staff_listing_order = function () {
global $birchschedule;
return $birchschedule->model->get_staff_listing_order();
};
$ns->get_services_listing_order = function () {
global $birchschedule;
return $birchschedule->model->get_services_listing_order();
};
$ns->get_services_prices_map = function () {
global $birchschedule;
return $birchschedule->model->get_services_prices_map();
};
$ns->get_services_duration_map = function () {
global $birchschedule;
return $birchschedule->model->get_services_duration_map();
};
$ns->ajax_query_appointments = function () use($ns) {
//.........这里部分代码省略.........
示例11: birch_ns
birch_ns('birchschedule.model', function ($ns) {
global $birchschedule;
$ns->init = function () use($ns) {
add_filter('birchbase_db_get_essential_post_columns', array($ns, 'add_more_essential_columns'), 20, 2);
};
$ns->save = function ($model, $config = false) {
global $birchschedule, $birchpress;
$model = $birchschedule->model->pre_save($model, $config);
return $birchpress->db->save($model, $config);
};
$ns->pre_save = function ($model, $config) {
return $model;
};
$ns->post_get = function ($model) {
return $model;
};
$ns->is_valid_id = function ($id) {
global $birchpress;
return $birchpress->db->is_valid_id($id);
};
$ns->add_more_essential_columns = function ($columns, $post_type) {
if ($post_type == 'birs_staff') {
$columns[] = 'post_title';
$columns[] = 'post_content';
}
if ($post_type == 'birs_service') {
$columns[] = 'post_title';
$columns[] = 'post_content';
}
return $columns;
};
$ns->get_service_pre_payment_fee = function ($service_id) {
global $birchschedule;
if (!$birchschedule->model->is_valid_id($service_id)) {
return 0;
}
$service = $birchschedule->model->get($service_id, array('base_keys' => array(), 'meta_keys' => array('_birs_service_pre_payment_fee', '_birs_service_price')));
$is_prepayment_enabled = $birchschedule->model->is_prepayment_enabled($service_id);
if (!$is_prepayment_enabled) {
return 0;
}
$service_pre_payment_fee = $service['_birs_service_pre_payment_fee'];
if ($service_pre_payment_fee) {
if ($service_pre_payment_fee['pre_payment_type'] == 'fixed') {
return floatval($service_pre_payment_fee['fixed']);
} else {
if ($service_pre_payment_fee['pre_payment_type'] == 'percent') {
return $service_pre_payment_fee['percent'] * 0.01 * $service['_birs_service_price'];
} else {
return 0;
}
}
} else {
return 0;
}
};
$ns->get_service_padding = function ($service_id, $type) {
global $birchschedule;
birch_assert($birchschedule->model->is_valid_id($service_id));
birch_assert($type === 'before' || $type === 'after');
$service = $birchschedule->model->get($service_id, array('meta_keys' => array('_birs_service_padding', '_birs_service_padding_type'), 'base_keys' => array()));
$padding_type = $service['_birs_service_padding_type'];
if ($padding_type === 'before-and-after' || $padding_type === $type) {
$padding = $service['_birs_service_padding'];
} else {
$padding = 0;
}
return $padding;
};
$ns->get_service_padding_before = function ($service_id) use($ns) {
return $ns->get_service_padding($service_id, 'before');
};
$ns->get_service_padding_after = function ($service_id) use($ns) {
return $ns->get_service_padding($service_id, 'after');
};
$ns->get_service_length = function ($service_id) {
global $birchschedule;
birch_assert($birchschedule->model->is_valid_id($service_id));
$service = $birchschedule->model->get($service_id, array('meta_keys' => array('_birs_service_length', '_birs_service_length_type'), 'base_keys' => array()));
$length = $service['_birs_service_length'];
$length_type = $service['_birs_service_length_type'];
if ($length_type == 'hours') {
$length = $length * 60;
}
return $length;
};
$ns->get_service_length_with_paddings = function ($service_id) use($ns) {
return $ns->get_service_length($service_id) + $ns->get_service_padding_before($service_id) + $ns->get_service_padding_after($service_id);
};
$ns->get_service_price = function ($service_id) {
global $birchschedule;
$service = $birchschedule->model->get($service_id, array('base_keys' => array(), 'meta_keys' => array('_birs_service_price')));
if (isset($service['_birs_service_price'])) {
return floatval($service['_birs_service_price']);
} else {
return 0;
}
};
$ns->get_service_timeslot = function ($service_id) {
return 15;
//.........这里部分代码省略.........
示例12: birch_ns
birch_ns('birchschedule.view.appointments.new', function ($ns) {
global $birchschedule;
$ns->init = function () use($ns, $birchschedule) {
add_action('admin_init', array($ns, 'wp_admin_init'));
add_action('init', array($ns, 'wp_init'));
add_action('birchschedule_view_register_common_scripts_after', array($ns, 'register_scripts'));
$birchschedule->view->load_post_new->when($birchschedule->view->appointments->is_post_type_appointment, $ns->load_post_new);
$birchschedule->view->enqueue_scripts_post_new->when($birchschedule->view->appointments->is_post_type_appointment, $ns->enqueue_scripts_post_new);
};
$ns->wp_init = function () use($ns) {
global $birchschedule;
$birchschedule->view->register_script_data_fn('birchschedule_view_appointments_new', 'birchschedule_view_appointments_new', array($ns, 'get_script_data_fn_view_appointments_new'));
};
$ns->wp_admin_init = function () use($ns) {
add_action('wp_ajax_birchschedule_view_appointments_new_schedule', array($ns, 'ajax_schedule'));
};
$ns->get_script_data_fn_view_appointments_new = function () use($ns) {
return array('services_staff_map' => $ns->get_services_staff_map(), 'services_prices_map' => $ns->get_services_prices_map(), 'services_duration_map' => $ns->get_services_duration_map(), 'locations_map' => $ns->get_locations_map(), 'locations_staff_map' => $ns->get_locations_staff_map(), 'locations_services_map' => $ns->get_locations_services_map(), 'locations_order' => $ns->get_locations_listing_order(), 'staff_order' => $ns->get_staff_listing_order(), 'services_order' => $ns->get_services_listing_order());
};
$ns->get_locations_map = function () {
global $birchschedule;
return $birchschedule->model->get_locations_map();
};
$ns->get_locations_staff_map = function () {
global $birchschedule;
return $birchschedule->model->get_locations_staff_map();
};
$ns->get_locations_services_map = function () {
global $birchschedule;
return $birchschedule->model->get_locations_services_map();
};
$ns->get_services_staff_map = function () {
global $birchschedule;
return $birchschedule->model->get_services_staff_map();
};
$ns->get_locations_listing_order = function () {
global $birchschedule;
return $birchschedule->model->get_locations_listing_order();
};
$ns->get_staff_listing_order = function () {
global $birchschedule;
return $birchschedule->model->get_staff_listing_order();
};
$ns->get_services_listing_order = function () {
global $birchschedule;
return $birchschedule->model->get_services_listing_order();
};
$ns->get_services_prices_map = function () {
global $birchschedule;
return $birchschedule->model->get_services_prices_map();
};
$ns->get_services_duration_map = function () {
global $birchschedule;
return $birchschedule->model->get_services_duration_map();
};
$ns->load_post_new = function ($arg) use($ns) {
add_action('add_meta_boxes', array($ns, 'add_meta_boxes'));
};
$ns->register_scripts = function () {
global $birchschedule;
$version = $birchschedule->get_product_version();
wp_register_script('birchschedule_view_appointments_new', $birchschedule->plugin_url() . '/assets/js/view/appointments/new/base.js', array('birchschedule_view_admincommon', 'birchschedule_view', 'jquery-ui-datepicker'), "{$version}");
};
$ns->enqueue_scripts_post_new = function ($arg) {
global $birchschedule;
$birchschedule->view->register_3rd_scripts();
$birchschedule->view->register_3rd_styles();
$birchschedule->view->enqueue_scripts(array('birchschedule_view_appointments_new'));
$birchschedule->view->enqueue_styles(array('birchschedule_appointments_new'));
};
$ns->add_meta_boxes = function () use($ns) {
add_meta_box('meta_box_birs_appointment_new_booking', __('Appointment Info', 'birchschedule'), array($ns, 'render_booking_info'), 'birs_appointment', 'normal', 'high');
add_meta_box('meta_box_birs_appointment_new_actions', __('Actions', 'birchschedule'), array($ns, 'render_actions'), 'birs_appointment', 'side', 'high');
};
$ns->get_time_options = function ($time) {
global $birchpress;
$options = $birchpress->util->get_time_options(5);
ob_start();
$birchpress->util->render_html_options($options, $time);
return ob_get_clean();
};
$ns->get_appointment_info_html = function () use($ns) {
global $birchpress;
if (isset($_GET['apttimestamp'])) {
$timestamp = $birchpress->util->get_wp_datetime($_GET['apttimestamp']);
$date = $timestamp->format('m/d/Y');
$time = $timestamp->format('H') * 60 + $timestamp->format('i');
} else {
$date = '';
$time = 540;
}
$location_id = 0;
$service_id = 0;
$staff_id = 0;
if (isset($_GET['locationid']) && $_GET['locationid'] != -1) {
$location_id = $_GET['locationid'];
}
if (isset($_GET['staffid']) && $_GET['staffid'] != -1) {
$staff_id = $_GET['staffid'];
}
//.........这里部分代码省略.........
示例13: birch_ns
birch_ns('birchschedule.eadmin', function ($ns) {
global $birchschedule;
birch_defn($ns, 'init', function () use($ns) {
add_action('admin_init', array($ns, 'wp_admin_init'));
add_action('birchschedule_view_register_common_scripts_after', array($ns, 'register_scripts'));
});
birch_defn($ns, 'wp_admin_init', function () use($ns) {
add_action('birchschedule_view_appointments_new_enqueue_scripts_post_new_after', array($ns, 'enqueue_scripts'));
add_action('birchschedule_view_appointments_edit_enqueue_scripts_post_edit_after', array($ns, 'enqueue_scripts'));
add_action('wp_ajax_birchschedule_eadmin_load_selected_client', array($ns, 'ajax_load_selected_client'));
add_action('wp_ajax_birchschedule_eadmin_search_clients', array($ns, 'ajax_search_clients'));
add_action('birchschedule_view_appointments_new_render_client_info_header_after', array($ns, 'render_client_selector'), 20);
add_action('birchschedule_gbooking_render_client_info_header_after', array($ns, 'render_client_selector'), 20);
add_action('birchschedule_view_appointments_edit_add_meta_boxes_after', array($ns, 'add_metabox_change_duration'));
add_action('wp_ajax_birchschedule_eadmin_change_appointment_duration', array($ns, 'ajax_change_appointment_duration'));
add_filter('birchschedule_model_booking_get_appointment_title', array($ns, 'get_calendar_appointment_title'), 20, 2);
});
birch_defn($ns, 'register_scripts', function () use($ns, $birchschedule) {
$version = $birchschedule->get_product_version();
wp_register_script('birchschedule_eadmin', $birchschedule->plugin_url() . '/modules/eadmin/assets/js/base.js', array('jquery-ui-autocomplete'), "{$version}");
});
birch_defn($ns, 'enqueue_scripts', function () use($ns, $birchschedule) {
$birchschedule->view->enqueue_scripts(array('birchschedule_eadmin'));
});
birch_defn($ns, 'title_like_where', function ($where) use($ns, $birchschedule) {
global $wpdb;
if (isset($_REQUEST['term'])) {
$post_title_like = $_REQUEST['term'];
$where .= ' AND ' . $wpdb->posts . '.post_title LIKE \'%' . esc_sql(like_escape($post_title_like)) . '%\'';
}
return $where;
});
birch_defn($ns, 'ajax_load_selected_client', function () use($ns, $birchschedule) {
if (isset($_REQUEST['birs_client_id'])) {
$client_id = $_REQUEST['birs_client_id'];
} else {
$client_id = 0;
}
echo $birchschedule->view->appointments->edit->clientlist->edit->get_client_info_html($client_id);
?>
<script type="text/javascript">
jQuery(function($) {
birchschedule.eadmin.initClientInfo();
});
</script>
<?php
exit;
});
birch_defn($ns, 'ajax_search_clients', function () use($ns, $birchschedule) {
add_filter('posts_where', array($ns, 'title_like_where'), 10);
$clients = $birchschedule->model->query(array('post_type' => 'birs_client', 'orderby' => 'title', 'order' => 'asc'), array('base_keys' => array('post_title'), 'meta_keys' => array('_birs_client_name_first', '_birs_client_name_last')));
remove_filter('posts_where', array($ns, 'title_like_where'), 10);
$results = array();
foreach ($clients as $client) {
$el = array('id' => $client['ID'], 'label' => $client['post_title'], 'value' => $client['post_title']);
$results[] = $el;
}
$success = array('code' => 'success', 'message' => json_encode($results));
$birchschedule->view->render_ajax_success_message($success);
});
birch_defn($ns, 'render_client_selector', function () use($ns, $birchschedule) {
$ui_anim_url = $birchschedule->plugin_url() . "/assets/images/ui-anim_basic_16x16.gif";
$placeholder = __('Search for an existing client', 'birchschedule');
?>
<ul>
<li class="birs_form_field">
<label> </label>
<div class="birs_field_content">
<input id="birs_client_selector" type="text" placeholder="<?php
echo $placeholder;
?>
">
</div>
</li>
</ul>
<style type="text/css">
.ui-autocomplete-loading {
background: white url('<?php
echo $ui_anim_url;
?>
') right center no-repeat;
}
.ui-autocomplete {
max-height: 100px;
overflow-y: auto;
/* prevent horizontal scrollbar */
overflow-x: hidden;
}
</style>
<?php
});
birch_defn($ns, 'add_metabox_change_duration', function () use($ns) {
add_meta_box('birs_metabox_appointment_change_duration', __('Duration', 'birchschedule'), array($ns, 'render_change_appointment_duration'), 'birs_appointment', 'side', 'high');
});
birch_defn($ns, 'ajax_change_appointment_duration', function () use($ns, $birchschedule) {
$appointment = array('post_type' => 'birs_appointment');
$appointment['_birs_appointment_duration'] = $_POST['birs_appointment_duration'];
$appointment['ID'] = $_POST['birs_appointment_id'];
$birchschedule->model->save($appointment, array('meta_keys' => array('_birs_appointment_duration')));
$birchschedule->view->render_ajax_success_message(array('code' => 'success', 'message' => ''));
//.........这里部分代码省略.........