public static function recover_old_order_rac() { // old order made as abandoned by update button if (isset($_GET['old_order'])) { $abandon_cart_id = $_GET['abandon_cart']; $email_template_id = $_GET['email_template']; global $wpdb; global $woocommerce; $table_name = $wpdb->prefix . 'rac_abandoncart'; $last_cart = $wpdb->get_results("SELECT * FROM {$table_name} WHERE id = {$abandon_cart_id}", OBJECT); end($last_cart); $last_cart_key = key($last_cart); $expected_object = maybe_unserialize($last_cart[$last_cart_key]->cart_details); if (is_object($expected_object)) { $cart_details = $expected_object->get_items(); foreach ($cart_details as $products) { $product = get_product($products['product_id']); // if ($product->product_type == 'variation') { if (!empty($products['variation_id'])) { $variations = array(); foreach ($products['item_meta'] as $meta_name => $meta_value) { $attributes = $product->get_variation_attributes(); $lower_case = array_change_key_case($attributes, CASE_LOWER); if (!is_null($lower_case[$meta_name])) { $value_true = in_array(strtolower($meta_value[0]), array_map('strtolower', $lower_case[$meta_name])); } else { $value_true = false; } if (in_array(strtolower($meta_name), array_map('strtolower', array_keys($attributes))) && $value_true) { $variations[$meta_name] = $meta_value[0]; } } if (get_option('rac_cart_content_when_cart_link_is_clicked') == 'yes') { $woocommerce->cart->empty_cart(); } $woocommerce->cart->add_to_cart($products['product_id'], $products['qty'], $products['variation_id'], $variations); // } } else { if (get_option('rac_cart_content_when_cart_link_is_clicked') == 'yes') { $woocommerce->cart->empty_cart(); } $woocommerce->cart->add_to_cart($products['product_id'], $products['qty']); } } } setcookie("rac_cart_id", $abandon_cart_id, time() + 3600, "/"); if (!empty($last_cart[$last_cart_key]->link_status)) { $email_template_ids_db = maybe_unserialize($last_cart[$last_cart_key]->link_status); if (!in_array($email_template_id, (array) $email_template_ids_db)) { //check for id duplication $email_template_ids_db[] = $email_template_id; $email_template_id_final = $email_template_ids_db; } } else { $email_template_id_final = array($email_template_id); } $email_template_id_final = maybe_serialize($email_template_id_final); $wpdb->update($table_name, array('link_status' => $email_template_id_final), array('id' => $abandon_cart_id)); FPRacCounter::rac_do_linkc_count(); } }