get_charset_collate();
$table_name = $wpdb->prefix . CPABC_APPOINTMENTS_TABLE_NAME_NO_PREFIX;
$sql = "CREATE TABLE ".$wpdb->prefix.CPABC_APPOINTMENTS_DISCOUNT_CODES_TABLE_NAME_NO_PREFIX." (
id mediumint(9) NOT NULL AUTO_INCREMENT,
cal_id mediumint(9) NOT NULL DEFAULT 1,
code VARCHAR(250) DEFAULT '' NOT NULL,
discount VARCHAR(250) DEFAULT '' NOT NULL,
expires datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
availability int(10) unsigned NOT NULL DEFAULT 0,
used int(10) unsigned NOT NULL DEFAULT 0,
UNIQUE KEY id (id)
) ".$charset_collate.";";
$wpdb->query($sql);
$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
booked_time VARCHAR(250) DEFAULT '' NOT NULL,
booked_time_unformatted VARCHAR(250) DEFAULT '' NOT NULL,
name VARCHAR(250) DEFAULT '' NOT NULL,
email VARCHAR(250) DEFAULT '' NOT NULL,
phone VARCHAR(250) DEFAULT '' NOT NULL,
question mediumtext,
quantity VARCHAR(30) DEFAULT '1' NOT NULL,
buffered_date text,
UNIQUE KEY id (id)
) ".$charset_collate.";";
$wpdb->query($sql);
$sql = "ALTER TABLE $table_name ADD `calendar` INT NOT NULL AFTER `id`;";
$wpdb->query($sql);
$sql = "CREATE TABLE `".$wpdb->prefix.CPABC_APPOINTMENTS_CONFIG_TABLE_NAME."` (`".CPABC_TDEAPP_CONFIG_ID."` int(10) unsigned NOT NULL auto_increment, `".CPABC_TDEAPP_CONFIG_TITLE."` varchar(255) NOT NULL default '',`".CPABC_TDEAPP_CONFIG_USER."` varchar(100) default NULL,`".CPABC_TDEAPP_CONFIG_PASS."` varchar(100) default NULL,`".CPABC_TDEAPP_CONFIG_LANG."` varchar(5) default NULL,`".CPABC_TDEAPP_CONFIG_CPAGES."` tinyint(3) unsigned default NULL,`".CPABC_TDEAPP_CONFIG_TYPE."` tinyint(3) unsigned default NULL,`".CPABC_TDEAPP_CONFIG_MSG."` varchar(255) NOT NULL default '',`".CPABC_TDEAPP_CONFIG_WORKINGDATES."` varchar(255) NOT NULL default '',`".CPABC_TDEAPP_CONFIG_RESTRICTEDDATES."` text,`".CPABC_TDEAPP_CONFIG_TIMEWORKINGDATES0."` text,`".CPABC_TDEAPP_CONFIG_TIMEWORKINGDATES1."` text,`".CPABC_TDEAPP_CONFIG_TIMEWORKINGDATES2."` text,`".CPABC_TDEAPP_CONFIG_TIMEWORKINGDATES3."` text,`".CPABC_TDEAPP_CONFIG_TIMEWORKINGDATES4."` text,`".CPABC_TDEAPP_CONFIG_TIMEWORKINGDATES5."` text,`".CPABC_TDEAPP_CONFIG_TIMEWORKINGDATES6."` text,`".CPABC_TDEAPP_CALDELETED_FIELD."` tinyint(3) unsigned default NULL,PRIMARY KEY (`".CPABC_TDEAPP_CONFIG_ID."`)) ".$charset_collate."; ";
$wpdb->query($sql);
$sql = "ALTER TABLE `".$wpdb->prefix.CPABC_APPOINTMENTS_CONFIG_TABLE_NAME."` ADD (".
"`conwer` INT NOT NULL, ".
"`form_structure` mediumtext, ".
"`specialDates` mediumtext, ".
"`vs_use_validation` VARCHAR(20) DEFAULT '' NOT NULL, ".
"`vs_text_is_required` VARCHAR(250) DEFAULT '' NOT NULL, ".
"`vs_text_is_email` VARCHAR(250) DEFAULT '' NOT NULL, ".
"`vs_text_datemmddyyyy` VARCHAR(250) DEFAULT '' NOT NULL, ".
"`vs_text_dateddmmyyyy` VARCHAR(250) DEFAULT '' NOT NULL, ".
"`vs_text_number` VARCHAR(250) DEFAULT '' NOT NULL, ".
"`vs_text_digits` VARCHAR(250) DEFAULT '' NOT NULL, ".
"`vs_text_max` VARCHAR(250) DEFAULT '' NOT NULL, ".
"`vs_text_min` VARCHAR(250) DEFAULT '' NOT NULL, ".
"`vs_text_submitbtn` VARCHAR(250) DEFAULT '' NOT NULL, ".
"`calendar_language` text, ".
"`calendar_dateformat` text, ".
"`calendar_pages` text, ".
"`calendar_militarytime` text, ".
"`calendar_weekday` text, ".
"`calendar_mindate` text, ".
"`calendar_maxdate` text, ".
"`calendar_startmonth` VARCHAR(20) DEFAULT '' NOT NULL, ".
"`calendar_startyear` VARCHAR(20) DEFAULT '' NOT NULL, ".
"`calendar_theme` text, ".
"`min_slots` VARCHAR(10) DEFAULT '' NOT NULL, ".
"`max_slots` VARCHAR(10) DEFAULT '' NOT NULL, ".
"`close_fpanel` VARCHAR(10) DEFAULT '' NOT NULL, ".
"`quantity_field` VARCHAR(10) DEFAULT '' NOT NULL, ".
"`paypal_mode` VARCHAR(20) DEFAULT '' NOT NULL, ".
"`enable_paypal` text, ".
"`paypal_email` text, ".
"`request_cost` text, ".
"`paypal_product_name` text, ".
"`currency` text, ".
"`url_ok` text, ".
"`url_cancel` text, ".
"`paypal_language` text, ".
"`cu_user_email_field` VARCHAR(250) DEFAULT '' NOT NULL, ".
"`notification_from_email` text, ".
"`notification_destination_email` text, ".
"`email_subject_confirmation_to_user` text, ".
"`email_confirmation_to_user` text, ".
"`email_subject_notification_to_admin` text, ".
"`email_notification_to_admin` text, ".
"`enable_reminder` text, ".
"`reminder_hours` text, ".
"`reminder_subject` text, ".
"`reminder_content` text, ".
"`dexcv_enable_captcha` text, ".
"`dexcv_width` text, ".
"`dexcv_height` text, ".
"`dexcv_chars` text, ".
"`dexcv_min_font_size` text, ".
"`dexcv_max_font_size` text, ".
"`dexcv_noise` text, ".
"`dexcv_noise_length` text, ".
"`dexcv_background` text, ".
"`dexcv_border` text, ".
"`dexcv_font` text, ".
"`cv_text_enter_valid_captcha` VARCHAR(250) DEFAULT '' NOT NULL, ".
"`cp_cal_checkboxes` text, ".
"`nuser_emailformat` text, ".
"`nadmin_emailformat` text, ".
"`nremind_emailformat` text".
")";
$wpdb->query($sql);
$sql = "CREATE TABLE `".$wpdb->prefix.CPABC_APPOINTMENTS_CALENDARS_TABLE_NAME_NO_PREFIX."` (`".CPABC_TDEAPP_DATA_ID."` int(10) unsigned NOT NULL auto_increment,`".CPABC_TDEAPP_DATA_IDCALENDAR."` int(10) unsigned default NULL,`".CPABC_TDEAPP_DATA_DATETIME."`datetime NOT NULL default '0000-00-00 00:00:00',`".CPABC_TDEAPP_DATA_TITLE."` varchar(250) default NULL,`".CPABC_TDEAPP_DATA_DESCRIPTION."` mediumtext,PRIMARY KEY (`".CPABC_TDEAPP_DATA_ID."`)) ".$charset_collate.";";
$wpdb->query($sql);
// code for updates
$sql = "ALTER TABLE `".$wpdb->prefix.CPABC_APPOINTMENTS_CALENDARS_TABLE_NAME_NO_PREFIX."` ADD `description_customer` text DEFAULT '' NOT NULL;"; $wpdb->query($sql);
$sql = "ALTER TABLE `".$wpdb->prefix.CPABC_APPOINTMENTS_CALENDARS_TABLE_NAME_NO_PREFIX."` ADD `reminder` VARCHAR(1) DEFAULT '' NOT NULL;"; $wpdb->query($sql);
$sql = "ALTER TABLE `".$wpdb->prefix.CPABC_APPOINTMENTS_CALENDARS_TABLE_NAME_NO_PREFIX."` ADD `reference` VARCHAR(20) DEFAULT '' NOT NULL;"; $wpdb->query($sql);
$sql = "ALTER TABLE `".$wpdb->prefix.CPABC_APPOINTMENTS_CALENDARS_TABLE_NAME_NO_PREFIX."` ADD `quantity` VARCHAR(25) DEFAULT '1' NOT NULL;"; $wpdb->query($sql);
$sql = 'INSERT INTO `'.$wpdb->prefix.CPABC_APPOINTMENTS_CONFIG_TABLE_NAME.'` (conwer,calendar_theme,`form_structure`,`'.CPABC_TDEAPP_CONFIG_ID.'`,`'.CPABC_TDEAPP_CONFIG_TITLE.'`,`'.CPABC_TDEAPP_CONFIG_USER.'`,`'.CPABC_TDEAPP_CONFIG_PASS.'`,`'.CPABC_TDEAPP_CONFIG_LANG.'`,`'.CPABC_TDEAPP_CONFIG_CPAGES.'`,`'.CPABC_TDEAPP_CONFIG_TYPE.'`,`'.CPABC_TDEAPP_CONFIG_MSG.'`,`'.CPABC_TDEAPP_CONFIG_WORKINGDATES.'`,`'.CPABC_TDEAPP_CONFIG_RESTRICTEDDATES.'`,`'.CPABC_TDEAPP_CONFIG_TIMEWORKINGDATES0.'`,`'.CPABC_TDEAPP_CONFIG_TIMEWORKINGDATES1.'`,`'.CPABC_TDEAPP_CONFIG_TIMEWORKINGDATES2.'`,`'.CPABC_TDEAPP_CONFIG_TIMEWORKINGDATES3.'`,`'.CPABC_TDEAPP_CONFIG_TIMEWORKINGDATES4.'`,`'.CPABC_TDEAPP_CONFIG_TIMEWORKINGDATES5.'`,`'.CPABC_TDEAPP_CONFIG_TIMEWORKINGDATES6.'`,`'.CPABC_TDEAPP_CALDELETED_FIELD.'`) '.
' VALUES(0,"modern/","'.esc_sql(CPABC_APPOINTMENTS_DEFAULT_form_structure).'","1","cal1","Calendar Item 1","","-","1","3","Please, select your appointment.","1,2,3,4,5","","","9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0","9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0","9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0","9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0","9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0","","0");';
$wpdb->query($sql);
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
}
function _cpabc_appointments_get_default_paypal_email()
{
return get_the_author_meta('user_email', get_current_user_id());
}
function _cpabc_appointments_get_default_from_email()
{
$default_from = strtolower(get_the_author_meta('user_email', get_current_user_id()));
$domain = str_replace('www.','', strtolower($_SERVER["HTTP_HOST"]));
while (substr_count($domain,".") > 1)
$domain = substr($domain, strpos($domain, ".")+1);
$pos = strpos($default_from, $domain);
if (substr_count($domain,".") == 1 && $pos === false)
return 'admin@'.$domain;
else
return $default_from;
}
/* Filter for placing the maps into the contents */
function cpabc_appointments_filter_content($atts) {
global $wpdb;
extract( shortcode_atts( array(
'calendar' => '',
'user' => '',
), $atts ) );
if ($calendar != '')
define ('CPABC_CALENDAR_FIXED_ID',intval($calendar));
else if ($user != '')
{
$users = $wpdb->get_results( "SELECT user_login,ID FROM ".$wpdb->users." WHERE user_login='".esc_sql($user)."'" );
if (isset($users[0]))
define ('CPABC_CALENDAR_USER',$users[0]->ID);
else
define ('CPABC_CALENDAR_USER',0);
}
else
define ('CPABC_CALENDAR_USER',0);
ob_start();
cpabc_appointments_get_public_form();
$buffered_contents = ob_get_contents();
ob_end_clean();
return $buffered_contents;
}
function cpabc_appointments_filter_edit($atts) {
global $wpdb;
extract( shortcode_atts( array(
'calendar' => '',
'user' => '',
), $atts ) );
$buffered_contents = '';
$current_user = wp_get_current_user();
$myrows = $wpdb->get_results( "SELECT * FROM ".CPABC_APPOINTMENTS_CONFIG_TABLE_NAME." where conwer<>'' AND conwer='".esc_sql($current_user->ID )."'" );
if (count($myrows))
{
if (!defined('CP_CALENDAR_ID'))
define ('CP_CALENDAR_ID',$myrows[0]->id);
define ('CPABC_CALENDAR_ON_PUBLIC_WEBSITE',true);
ob_start();
@include_once dirname( __FILE__ ) . '/cpabc_appointments_admin_int.inc.php';
$buffered_contents = ob_get_contents();
ob_end_clean();
}
return $buffered_contents;
}
function cpabc_appointments_filter_list($atts) {
global $wpdb;
extract( shortcode_atts( array(
'calendar' => '',
'user' => '',
'group' => 'no',
'fields' => 'DATE,TIME,NAME',
'from' => "today",
'to' => "today +90 days",
), $atts ) );
$from = date("Y-m-d 00:00:00", strtotime($from));
$to = date("Y-m-d 23:59:59", strtotime($to));
$group = strtolower($group);
if ($calendar != '')
define ('CPABC_CALENDAR_FIXED_ID', intval($calendar));
else if ($user != '')
{
$users = $wpdb->get_results( "SELECT user_login,ID FROM ".$wpdb->users." WHERE user_login='".esc_sql($user)."'" );
if (isset($users[0]))
define ('CPABC_CALENDAR_USER',$users[0]->ID);
else
define ('CPABC_CALENDAR_USER',0);
}
else
define ('CPABC_CALENDAR_USER',0);
if (defined('CPABC_CALENDAR_USER') && CPABC_CALENDAR_USER != 0)
$myrows = $wpdb->get_results( "SELECT * FROM ".CPABC_APPOINTMENTS_CONFIG_TABLE_NAME." WHERE conwer=".CPABC_CALENDAR_USER." AND caldeleted=0" );
else if (defined('CPABC_CALENDAR_FIXED_ID'))
$myrows = $wpdb->get_results( "SELECT * FROM ".CPABC_APPOINTMENTS_CONFIG_TABLE_NAME." WHERE id=".CPABC_CALENDAR_FIXED_ID." AND caldeleted=0" );
else
$myrows = $wpdb->get_results( "SELECT * FROM ".CPABC_APPOINTMENTS_CONFIG_TABLE_NAME." WHERE caldeleted=0" );
if (!defined('CP_CALENDAR_ID')) define ('CP_CALENDAR_ID',$myrows[0]->id);
ob_start();
echo '';
$fields = explode(",",$fields);
$last_date = '';
$mycalendarrows = $wpdb->get_results( "SELECT * FROM ".CPABC_TDEAPP_CALENDAR_DATA_TABLE ." INNER JOIN ".CPABC_APPOINTMENTS_TABLE_NAME." on ".CPABC_APPOINTMENTS_TABLE_NAME.".id=".CPABC_TDEAPP_CALENDAR_DATA_TABLE.".reference WHERE datatime>='".$from."' AND datatime<='".$to."' AND appointment_calendar_id=".CP_CALENDAR_ID." ORDER BY datatime ASC");
for($f=0; $f
';
}
?>
';
}
function set_cpabc_apps_insert_adminScripts($hook) {
if (isset($_GET["cal"]) && $_GET["cal"] != '' && isset($_GET["page"]) && $_GET["page"] == 'cpabc_appointments.php')
{
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'jquery-ui-core' );
wp_enqueue_script( 'jquery-ui-datepicker' );
wp_enqueue_script( 'tinymce_js', includes_url( 'js/tinymce/' ) . 'wp-tinymce.php', array( 'jquery' ), false, true );
if (isset($_GET["calschedule"]) && $_GET["calschedule"] == '1')
wp_enqueue_script( 'jquery-ui-dialog' );
if (isset($_GET["addbk"]) && $_GET["addbk"] == '1')
{
wp_enqueue_script( 'cpabc_repeat', plugins_url('../js/repeat.js', __FILE__), array( 'jquery', 'jquery-ui-core', 'jquery-ui-datepicker' ));
wp_enqueue_script( 'cpabc_rrule', plugins_url('../js/rrule.js', __FILE__), array( 'jquery', 'jquery-ui-core', 'jquery-ui-datepicker' ) );
}
wp_enqueue_style('jquery-ui-datepicker', plugins_url('../TDE_AppCalendar/cupertino/jquery-ui-1.8.20.custom.css', __FILE__));
if (!isset($_GET["addbk"]))
wp_enqueue_style('cpabc-allstyle', plugins_url('../TDE_AppCalendar/all-css.css', __FILE__));
wp_enqueue_style('cpabc-sestyle', plugins_url('../TDE_AppCalendar/simpleeditor.css', __FILE__));
wp_enqueue_style('cpabc-tbstyle', plugins_url('../TDE_AppCalendar/tabview.css', __FILE__));
}
if( 'post.php' != $hook && 'post-new.php' != $hook )
return;
}
function cpabc_export_iCal() {
global $wpdb;
// header("Content-type: application/octet-stream");
// header("Content-Disposition: attachment; filename=events".date("Y-M-D_H.i.s").".ics");
define('CPABC_CAL_TIME_ZONE_MODIFY',get_option('CPABC_CAL_TIME_ZONE_MODIFY_SET'," +0 hours"));
define('CPABC_CAL_TIME_SLOT_SIZE'," +".get_option('CPABC_CAL_TIME_SLOT_SIZE_SET',"30")." minutes");
echo "BEGIN:VCALENDAR\n";
echo "PRODID:-//Net-Factor CodePeople//Appointment Booking Calendar for WordPress//EN\n";
echo "VERSION:2.0\n";
echo "CALSCALE:GREGORIAN\n";
echo "METHOD:PUBLISH\n";
echo "X-WR-CALNAME:Bookings\n";
echo "X-WR-TIMEZONE:Europe/London\n";
echo "BEGIN:VTIMEZONE\n";
echo "TZID:Europe/Stockholm\n";
echo "X-LIC-LOCATION:Europe/London\n";
echo "BEGIN:DAYLIGHT\n";
echo "TZOFFSETFROM:+0000\n";
echo "TZOFFSETTO:+0100\n";
echo "TZNAME:CEST\n";
echo "DTSTART:19700329T020000\n";
echo "RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU\n";
echo "END:DAYLIGHT\n";
echo "BEGIN:STANDARD\n";
echo "TZOFFSETFROM:+0100\n";
echo "TZOFFSETTO:+0000\n";
echo "TZNAME:CET\n";
echo "DTSTART:19701025T030000\n";
echo "RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU\n";
echo "END:STANDARD\n";
echo "END:VTIMEZONE\n";
$events = $wpdb->get_results( "SELECT * FROM ".CPABC_APPOINTMENTS_CALENDARS_TABLE_NAME." WHERE appointment_calendar_id=".intval($_GET["id"])." ORDER BY datatime ASC" );
foreach ($events as $event)
{
echo "BEGIN:VEVENT\n";
echo "DTSTART:".date("Ymd",strtotime($event->datatime.CPABC_CAL_TIME_ZONE_MODIFY))."T".date("His",strtotime($event->datatime.CPABC_CAL_TIME_ZONE_MODIFY))."Z\n";
echo "DTEND:".date("Ymd",strtotime($event->datatime.CPABC_CAL_TIME_ZONE_MODIFY))."T".date("His",strtotime($event->datatime.CPABC_CAL_TIME_ZONE_MODIFY.CPABC_CAL_TIME_SLOT_SIZE))."Z\n";
echo "DTSTAMP:".date("Ymd",strtotime($event->datatime.CPABC_CAL_TIME_ZONE_MODIFY))."T".date("His",strtotime($event->datatime.CPABC_CAL_TIME_ZONE_MODIFY))."Z\n";
echo "UID:uid".$event->id."@".$_SERVER["SERVER_NAME"]."\n";
echo "CREATED:".date("Ymd",strtotime($event->datatime.CPABC_CAL_TIME_ZONE_MODIFY))."T".date("His",strtotime($event->datatime.CPABC_CAL_TIME_ZONE_MODIFY))."Z\n";
echo "DESCRIPTION:".str_replace("