/**
* Note: This file may contain artifacts of previous malicious infection.
* However, the dangerous code has been removed, and the file is now safe to use.
*/
include ('shortcodes.php');
define("HTML_EMAIL_HEADERS", array('Content-Type: text/html; charset=UTF-8'));
/**
* Enqueue parent and child styles
*/
function edubin_child_enqueue_styles()
{
wp_enqueue_style('edubin-parent', get_template_directory_uri() . '/style.css');
wp_enqueue_style('edubin-child', get_stylesheet_directory_uri() . '/style.css', array(
'edubin-parent'
));
wp_enqueue_style('twentysixteen-style', get_stylesheet_directory_uri() . '/custom.css');
// enqueue script
wp_enqueue_script('footerScript', get_stylesheet_directory_uri() . '/assets/js/jquery.validation.js', array('jquery') , '20150825', true);
wp_enqueue_script('moment', get_stylesheet_directory_uri() . '/assets/js/moment.min.js', array('jquery') , '20150825', true);
wp_enqueue_script('moment-timezone', get_stylesheet_directory_uri() . '/assets/js/moment-timezone.min.js', array('jquery') , '20150825', true);
}
add_action('wp_enqueue_scripts', 'edubin_child_enqueue_styles', 11);
add_action('wp_ajax_appointment_form', 'ajax_appointment_form');
add_action('wp_ajax_nopriv_appointment_form', 'ajax_appointment_form');
function ajax_appointment_form()
{
// A default response holder, which will have data for sending back to our js file
$response = array(
'error' => false,
);
global $wpdb;
$table_name = $wpdb->prefix . 'qacademykids_appointments';
$rand_otp = rand(1000, 10000);
//Commented temporarily
// $results = $wpdb->get_results("SELECT id FROM " . $table_name . " where verified='0' AND parent_phone='" . $_POST['parent_phone'] . "'");
//Enabled temporarily
/* $results = $wpdb->get_results("SELECT id FROM " . $table_name . " where verified='1' AND parent_phone='" . $_POST['parent_phone'] . "'");
if (!empty($results)){
// $update = $wpdb->query($wpdb->prepare("UPDATE " . $table_name . " SET parent_phone='" . $_POST['parent_phone'] . "', otp = ".$rand_otp." WHERE id='" . $results[0]->id . "'"));
// if ($update){
$response['status'] = true;
$response['id'] = intval($results[0]->id);
$response['message'] = "Appointment added successfully";
global $wpdb;
$table_name = $wpdb->prefix . 'qacademykids_appointments';
$apnt_results = $wpdb->get_results("SELECT * FROM " . $table_name . " where id='" . $response['id'] . "'");
if (!empty($apnt_results)) {
user_send_email($apnt_results[0]);
admin_send_email($apnt_results[0]);
}
// }
// else
// {
// $response['status'] = false;
// $response['message'] = "Appointment failed";
// }
}else{ */
$insertData = $wpdb->insert($table_name, array(
'appointment_date' => $_POST['appointment_date'],
'appointment_userzone' => $_POST['appointment_userzone'],
'parent_name' => $_POST['parent_name'],
'parent_email' => $_POST['parent_email'],
'parent_phone' => $_POST['parent_phone'],
'name' => $_POST['name'],
'grade' => $_POST['grade'],
'course' => $_POST['course'],
'classtype' => $_POST['classtype'],
'otp' => $rand_otp,
'verified'=>1
));
if ($insertData)
{
$response['status'] = true;
$response['id'] = $wpdb->insert_id;
$response['message'] = "Appointment added successfully";
global $wpdb;
$table_name = $wpdb->prefix . 'qacademykids_appointments';
$apnt_results = $wpdb->get_results("SELECT * FROM " . $table_name . " where id='" . $response['id'] . "'");
if (!empty($apnt_results)) {
user_send_email($apnt_results[0]);
admin_send_email($apnt_results[0]);
}
}
else
{
$response['status'] = false;
$response['message'] = "Appointment failed";
}
// }
// $OTP_msg = $rand_otp." is your OTP to verify the Mobile number at qacademykids.com.";
// $ch = curl_init();
// curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Authorization:Basic QUNkNjJkNmZkMTYyZTZhNDIwMmRhY2ExMmE3NjgxNTk0ODozYTI4ZTQ3NmM5NjUyMTQyNjc3YzU5OThkYTA5NTMxOQ=='));
// curl_setopt($ch, CURLOPT_URL,"https://api.twilio.com/2010-04-01/Accounts/ACd62d6fd162e6a4202daca12a76815948/Messages.json");
// curl_setopt($ch, CURLOPT_POST, 1);
//curl_setopt($ch, CURLOPT_POSTFIELDS,
// "From=whatsapp:+14155238886&To=whatsapp:+919952642738&Body=OTP 2568");
// curl_setopt($ch, CURLOPT_POSTFIELDS,
// http_build_query(array('MessagingServiceSid' => 'MGa01cb69010017e60cf511c2f264b97eb','To'=>'+91'.$_POST['parent_phone'],'Body'=>$OTP_msg)));
// Receive server response ...
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// $server_output = curl_exec($ch);
// curl_close ($ch);
// $response['server_output'] = $server_output;
exit(json_encode($response));
}
add_action('wp_ajax_verification_form', 'verification_submit');
add_action('wp_ajax_nopriv_verification_form', 'verification_submit');
function verification_submit()
{
global $wpdb;
$table_name = $wpdb->prefix . 'qacademykids_appointments';
$results = $wpdb->get_results("SELECT * FROM " . $table_name . " where id='" . $_POST['appointment_id'] . "'");
if (!empty($results))
{
if ($results[0]->otp == $_POST['otp'])
{
user_send_email($results[0]);
admin_send_email($results[0]);
$update = $wpdb->query($wpdb->prepare("UPDATE " . $table_name . " SET verified='1' WHERE id='" . $_POST['appointment_id'] . "'"));
$response['status'] = true;
$response['message'] = "Your Request has been submitted successfully!";
}
else
{
$response['status'] = false;
$response['message'] = "Invalid OTP";
}
}
else
{
$response['status'] = false;
$response['message'] = "Invalid OTP";
}
exit(json_encode($response));
}
function user_send_email($data){
$to = $data->parent_email; //get_option('admin_email');
$subject = "Booked Your Free Class";
$heading = "Booked Your Free Class";
$headers = array(
'Content-Type: text/html; charset=UTF-8',
'From: QAcademy kids <'.get_option('admin_email').'>',
'Reply-To: info@qacademy.ca'
);
$message = message($data, false);
$mailer = WC()->mailer();
$wrapped_message = $mailer->wrap_message($heading, $message);
$wc_email = new WC_Email;
$html_message = $wc_email->style_inline($wrapped_message);
$sent = wp_mail( $to, $subject, $html_message, $headers );
if($sent) {
//print_r("mail sent");
} else {
//print_r("mail not sent");
}
}
function admin_send_email($data){
// $to = 'info@qacademy.ca';
$to = 'admin@qacademykids.com';
$subject = "Booked New Free Class";
$heading = "Booked New Free Class";
$headers = array(
'Content-Type: text/html; charset=UTF-8',
'From: QAcademy kids <'.$data->parent_email.'>',
'Reply-To: '.$data->parent_email.' ',
'Bcc: zavosh@qacademykids.com, samar.swain@msquare.media, renz.pangco@msquaremedia.com'
);
$message = message($data, true);
$mailer = WC()->mailer();
$wrapped_message = $mailer->wrap_message($heading, $message);
$wc_email = new WC_Email;
$html_message = $wc_email->style_inline($wrapped_message);
$sent = wp_mail( $to, $subject, $html_message, $headers );
if($sent) {
//print_r("mail sent");
} else {
//print_r("mail not sent");
}
}
function message($data, $is_admin){
$date = $data->appointment_userzone;
if($is_admin){
$date = $data->appointment_date;
}
$msg = '
Booking Details
Parents Email
: '.$data->parent_email.'
Parents Name
: '.$data->parent_name.'
Parents Mobile
: '.$data->parent_phone.'
Child Name
: '.$data->name.'
Grade
: '.grade_name($data->grade).'
Class
: '.$data->course.'
Class Type
: '.$data->classtype.'
';
return $msg;
}
add_filter( 'woocommerce_order_button_html', 'custom_order_button_html');
function custom_order_button_html( $button ) {
// The text of the button
$order_button_text = __('Pay Securely', 'woocommerce');
// HERE your Javascript Event
// $js_event = "fbq('track', 'AddPaymentInfo');";
// HERE you make changes (Replacing the code of the button):
$button = ' ';
return $button;
}
add_filter( 'postmeta_form_limit', 'meta_limit_increase' );
function meta_limit_increase( $limit ) {
return 50;
}
add_action( 'woocommerce_checkout_order_processed', 'parent_details_update', 1, 1 );
function parent_details_update( $order_id ){
if($order_id){
$order = wc_get_order( $order_id );
$order->update_meta_data('additional_parent_email', $order->get_billing_email());
$order->update_meta_data('additional_parent_name', $order->get_billing_first_name());
$order->update_meta_data('additional_parent_mobile', $order->get_billing_phone());
$order->update_meta_data('additional_kids_name', $order->get_billing_company());
$order->save();
}
}
function grade_name($grader){
$grade = "-";
if($grader == 1){
$grade = "Kids / Age 6-9 | Grade 1-4";
}elseif($grader == 2){
$grade = "Tweens / Age 10-12 | Grade 5-7";
}elseif($grader == 3){
$grade = "Teens / Age 13-18+ | Grade 8-12";
}
return $grade;
}
//Blog
wp_localize_script( 'twentyfifteen-script', 'ajax_posts', array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'noposts' => __('No older posts found', 'twentyfifteen'),
));
function more_post_ajax(){
$ppp = (isset($_POST["ppp"])) ? $_POST["ppp"] : 2;
$page = (isset($_POST['pageNumber'])) ? $_POST['pageNumber'] : 0;
$cat = (isset($_POST['cat'])) ? $_POST['cat'] : '';
header("Content-Type: text/html");
$args = array(
'suppress_filters' => true,
'post_type' => 'post',
'posts_per_page' => $ppp,
'cat' => $cat,
'paged' => $page,
'orderby' => 'date',
'order' => 'DESC',
);
$loop = new WP_Query($args);
$out = '';
if ($loop -> have_posts()) : while ($loop -> have_posts()) : $loop -> the_post();
$mycontent = get_the_content();
$trimmed_content = wp_trim_words( $mycontent , 15, '... [explore] ' );
$out .= '
'.get_the_post_thumbnail().'
';
endwhile;
endif;
// wp_reset_postdata();
die($out);
}
add_action('wp_ajax_nopriv_more_post_ajax', 'more_post_ajax');
add_action('wp_ajax_more_post_ajax', 'more_post_ajax');
@ini_set( 'upload_max_size' , '512M' );
@ini_set( 'post_max_size', '512M');
@ini_set( 'max_execution_time', '300' );
add_filter( 'woocommerce_cart_item_subtotal', 'ts_show_product_discount_order_summary', 10, 3 );
function ts_show_product_discount_order_summary( $total, $cart_item, $cart_item_key ) {
//Get product object
$_product = $cart_item['data'];
//Check if sale price is not empty
if( '' !== $_product->get_sale_price() ) {
//Get regular price of all quantities
$regular_price = $_product->get_regular_price() * $cart_item['quantity'];
//Prepend the crossed out regular price to actual price
$total = '' . wc_price( $regular_price ) . ' ' . $total;
}
// Return the html
return $total;
}
function all_courses_shortcode(){
ob_start();
get_template_part('all-courses');
return ob_get_clean();
}
add_shortcode('all_courses', 'all_courses_shortcode');
function get_courses(){
// $out = '';
// print_r($posts_array);
// $out = ' ';
$out = '';
// $out = 'search: '.$_POST["searchText"];
$searchText = (isset($_POST['searchText'])) ? $_POST['searchText'] : '';
$sortby = (isset($_POST['sortby'])) ? $_POST['sortby'] : 'ID, ASC';
$sort = explode(',',$sortby);
// $out .= $sort[0].' '.$sort[1];
// if($_POST["country_id"] != 'undefined' and $_POST["country_id"] != ''){
// // $catfilter = explode(',', $_POST["country_id"]);
// // $catfilter = explode(',', $_POST["country_id"]);
// $catfilter = $_POST["country_id"];
// // $out = 'country post: '.print_r($country);
// }else{
// $catfilter = '-1';
// }
if($_POST["country_id"] != 'undefined' and $_POST["country_id"] != ''){
$country = explode(',', $_POST["country_id"]);
$operator = 'IN';
}else{
$country = array(-1);
$operator = 'NOT IN';
}
if($_POST["level_id"] != 'undefined' and $_POST["level_id"] != ''){
$level_id = explode(',', $_POST["level_id"]);
$level_op = 'IN';
}else{
$level_id = array('test');
$level_op = 'NOT IN';
}
header("Content-Type: text/html");
$args2 = array(
'suppress_filters' => false,
'post_type' => 'courses',
'posts_per_page' => -1,
'numberposts' => -1,
'orderby' => $sort[0],
'order' => $sort[1],
's' => $_POST['searchText'],
// 'cat' => $catfilter,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'course-category',
'field' => 'term_id',
'terms' => $country,
'operator' => $operator,
) ,
) ,
'meta_query' => array(
'relation' => 'AND',
array(
'key' => '_tutor_course_level',
'value' => $level_id,
'compare' => $level_op,
),
// array(
// 'key' => '_tutor_course_price_type',
// 'value' => array('free'),
// 'compare' => 'IN',
// ),
// array(
// 'key' => 'featured',
// 'value' => '1',
// 'compare' => '=',
// ),
),
// 'tax_query' => array(
// array (
// 'taxonomy' => 'country',
// 'field' => 'term_id',
// 'terms' => $country,
// )
// ),
);
$loop = new WP_Query($args2);
// $sort = explode(',',$sortby);
$count = $loop->found_posts;
// $out .= $count.' = '.$sortby.'asdasd-';
// $out .= $results->request;
// $out .= $sort[0].' '.$sort[1];
// echo '';
// print_r(get_post_meta(get_the_ID()));
// print_r($loop);
// echo ' ';
$out1 = '';
$out2 = '';
if($count == 0){
$out .= 'No Result Found';
}
while ($loop->have_posts()) : $loop->the_post();
$ecommerce_product_id = tutor_utils()->get_course_product_id(get_the_ID());
$course_details = get_post_meta(get_the_ID());
$add_to_cart = do_shortcode('[add_to_cart_url id="' . $ecommerce_product_id . '"]');
$class_text = ($course_details['classes'][0] > 1)?" Classes": " Class";
$hours_text = ($course_details['hours'][0] > 1)?" hours": " hour";
$per_class_duration = ($course_details['duration_for_on_campus'][0] != "")?$course_details['duration_for_on_campus'][0]:$course_details['hours'][0] . $hours_text.'/ Class ';
$class_available_from_text = ($course_details['class_available_from'][0] != "")? '
' . $course_details['class_available_from'][0] . '
':"";
$price_per_class_text = ($course_details['price_per_class'][0] != "")?'Per class fee: $' . $course_details['price_per_class'][0] . ' ':"";
$detailed_curriculum = ($sub_category['id'] != 110 && $sub_category['id'] != 113 && $sub_category['id'] != 116)? ' View Detailed Curriculum ':"";
if ( $course_details['classes'][0] <= 1 ) {
$classescount = $course_details['classes'][0].' Class';
}else{
$classescount = $course_details['classes'][0].' Classes';
}
$out2 .= '
';
// $out2 .= '';
// $out2 .= '
';
// $out2 .= '
';
// $out2 .= '
';
// $out2 .= ' ';
// $out2 .= '';
// // $out2 .= get_the_ID();
// $out2 .= '
';
// $out2 .= get_the_title();
// $out2 .= '';
// $out2 .= '
';
// $mycontent = get_the_content();
// $trimmed_content = wp_trim_words( $mycontent , 25, '...' );
// $out2 .= $trimmed_content;
// // echo '
';
// // print_r($loop->the_post());
// // echo 'asdasdasd';
// // print_r(get_post_meta(get_the_ID()));
// // echo ' ';
// // print_r($loop->the_post(););
// $out2 .= '
';
// $out2 .= '
';
// $out2 .= '
';
// // $productUrl = get_permalink($product->get_id());
// $productUrl = get_permalink();
// $out2 .= '
View Details ';
// $out2 .= '
';
// $out2 .= '
';
// $out2 .= '
';
// $out2 .= '
';
// $out2 .= '';
endwhile;
wp_reset_postdata();
$out .= $out1;
$out .= $out2;
die($out);
}
add_action('wp_ajax_nopriv_get_courses', 'get_courses');
add_action('wp_ajax_get_courses', 'get_courses');
function dynamic_price_shortcode(){
global $woocommerce, $post, $product, $woocommerce_loop;
$course_product_id = get_post_meta( get_the_ID(), '_tutor_course_product_id' );
// $productUrl = get_permalink($course_product_id[0]);
$product = wc_get_product($course_product_id[0]);
// echo $product->get_price();
// echo ''.$product->get_price_html($course_product_id[0]).' ';
// echo '$ '.$product->get_price().' ';
if( isset($course_product_id[0]) ) {
echo '1:1 Price
';
echo ''.$product->get_price_html($course_product_id[0]).' ';
$ecommerce_product_id = tutor_utils()->get_course_product_id(get_the_ID());
$add_to_cart = do_shortcode('[add_to_cart_url id="' . $ecommerce_product_id . '"]');
$return = ' Checkout ';
echo $return;
echo '2';
}else{
echo '';
}
}
add_shortcode('dynamic_price', 'dynamic_price_shortcode');
remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );
add_action( 'woocommerce_review_order_after_cart_contents', 'woocommerce_checkout_coupon_form_custom' );
function woocommerce_checkout_coupon_form_custom() {
echo '';
wc_get_template(
'checkout/form-coupon.php',
array(
'checkout' => WC()->checkout(),
)
);
echo ' ';
}
add_filter( 'fc_coupon_code_field_initially_expanded', '__return_true' );
add_filter('woocs_raw_woocommerce_price', function($price) {
global $WOOCS;
if ($WOOCS->current_currency === 'INR') {
$price = (floor($price / 100) * 100) - 1;
}
return $price;
});
Coding for Beginners – Q Rangers
They can offer prospects for newcomers looking for their initial technological roles or industry experts who would like to upskill or make an occupation transition. Kids might also use their particular Seems, pictures, and photographs in the program to add a private contact to the […]
 Key Takeaways: Toronto, Canada is a fast-growing tech hub in North America and has, in recent years, produced more tech jobs than California’s Bay Area. The tech sector in Canada is growing, and so is the demand for its tech talents. Canada ranked 4th […]
 Key Points at a Glance: Kids as young as 5 years old can start learning how to code. Blockly uses games and puzzles to entice students without prior knowledge of programming to learn to code. Scratch uses its own programming language and uses blocks […]
 Key Takeaways: Canada’s tech industry makes up 5% of the country’s GDP. If you want to work in Canada’s technology sector, or become a tech practitioner, the lowest you can earn is around CA$34,792 per year, while the highest is around CA$114,300. Many provinces […]
Is coding for kids good for your child? Here’s a short guide explaining how learning to code benefits children in a variety of ways.  Key Points at a Glance: Learning to code helps build important life skills such as communication skills and emotional resilience. […]
 Key Points at a Glance: Learning to code is a good way to ensure your child’s success in today’s digital world. Daisy the Dinosaur is a good program for introducing young kids to coding. Subscription-based CodaKid uses a lot of games and lessons to […]