function permalink_save_options() { $data = get_option("bepro_listings"); if (isset($_POST["bl_permalink_option"])) { $data["permalink"] = $_POST["bl_permalink_option"]; $data["cat_permalink"] = $_POST["bl_cat_permalink_option"]; update_option("bepro_listings", $data); } //admin options menu save if (!empty($_POST["bpl_update_options"])) { //general $data["show_cost"] = $_POST["show_cost"]; $data["show_con"] = $_POST["show_con"]; $data["show_geo"] = $_POST["show_geo"]; $data["show_imgs"] = $_POST["show_imgs"]; $data["num_images"] = $_POST["num_images"]; $data["cat_heading"] = $_POST["cat_heading"]; $data["cat_empty"] = $_POST["cat_empty"]; $data["cat_singular"] = $_POST["cat_singular"]; //forms $data["validate_form"] = $_POST["validate_form"]; $data["default_user_id"] = $_POST["default_user_id"]; $data["use_tiny_mce"] = $_POST["use_tiny_mce"]; $data["default_status"] = $_POST["default_status"]; $data["success_message"] = $_POST["success_message"]; $data["fail_message"] = $_POST["fail_message"]; $data["form_cat_style"] = $_POST["form_cat_style"]; //check cat exclude $data["bepro_listings_cat_exclude"] = bl_check_is_valid_cat($_POST["bepro_listings_cat_exclude"]) ? $_POST["bepro_listings_cat_exclude"] : ""; //check cat required $data["bepro_listings_cat_required"] = bl_check_is_valid_cat($_POST["bepro_listings_cat_required"]) ? $_POST["bepro_listings_cat_required"] : ""; //search listings $data["default_image"] = $_POST["default_image"]; $data["link_new_page"] = $_POST["link_new_page"]; $data["ajax_on"] = $_POST["ajax_on"]; $data["num_listings"] = $_POST["num_listings"]; $data["distance"] = $_POST["distance"]; $data["dist_measurement"] = $_POST["dist_measurement"]; $data["search_names"] = $_POST["search_names"]; $data["title_length"] = is_numeric($_POST["title_length"]) ? $_POST["title_length"] : $data["title_length"]; $data["desc_length"] = is_numeric($_POST["desc_length"]) ? $_POST["desc_length"] : $data["desc_length"]; $data["details_link"] = $_POST["details_link"]; $data["show_web_link"] = $_POST["show_web_link"]; $data["show_date"] = $_POST["show_date"]; $data["currency_sign"] = $_POST["currency_sign"]; //Page/post $data["gallery_size"] = $_POST["gallery_size"]; $data["gallery_cols"] = $_POST["gallery_cols"]; $data["page_template"] = $_POST["page_template"]; $data["show_details"] = $_POST["show_details"]; $data["add_detail_links"] = $_POST["add_detail_links"]; $data["protect_contact"] = $_POST["protect_contact"]; $data["show_content"] = $_POST["show_content"]; $data["show_comments"] = $_POST["show_comments"]; $data["tabs_type"] = $_POST["tabs_type"]; //map $data["map_query_type"] = $_POST["map_query_type"]; $data["map_use_api"] = $_POST["map_use_api"]; $data["map_zoom"] = $_POST["map_zoom"]; //3rd party $data["buddypress"] = $_POST["buddypress"]; //payment $data["require_payment"] = $_POST["require_payment"]; $data["cat_fee_duration"] = $_POST["cat_fee_duration"]; $fee_count = 1; $data["add_to_cart"] = $_POST["add_to_cart"]; $data["publish_after_payment"] = $_POST["publish_after_payment"]; //repair if (!empty($_POST["recreate_templates"]) && $_POST["recreate_templates"] == 2) { $data = create_result_listing_templates($data); } if (!empty($_POST["bepro_email_notifications"]) && $_POST["bepro_email_notifications"] == 2) { create_bepro_emails_for_bepro_listings(); } //Support $data["footer_link"] = $_POST["footer_link"]; update_option("bepro_listings", $data); if (isset($_FILES["csv_upload"]) && !empty($_FILES["csv_upload"]["size"])) { $delimiter = $_POST["csv_upload_delimiter"]; $file_path = $_FILES["csv_upload"]["tmp_name"]; $file = fopen($file_path, 'r'); $csv_titles = array(); $counter = 0; while (($results = fgetcsv($file, 1500, $delimiter)) !== false) { if ($counter > 0) { $_POST = ""; foreach ($results as $key => $result) { $_POST[$csv_titles[$key]] = $result; } if (!empty($csv_titles[0])) { //check for multiple categories $_POST["categories"] = !empty($_POST["categories"]) && !is_numeric($_POST["categories"]) && strpos($_POST["categories"], '|') !== false ? str_replace("|", ",", $_POST["categories"]) : $_POST["categories"]; $_POST["save_bepro_listing"] = 1; $post_id = bepro_listings_save(false, true); if (!empty($_POST["photo"])) { //we only handle single photo uploads if (stristr($_POST["photo"], ",")) { $photos = explode(",", $_POST["photo"]); foreach ($photos as $photo) { $remote_url = addslashes(strip_tags($_POST["photo"])); bl_attach_remote_file($post_id, $remote_url); } } else { $remote_url = addslashes(strip_tags($_POST["photo"])); bl_attach_remote_file($post_id, $remote_url); } } } } else { $csv_titles = array_values($results); } $counter++; } fclose($file); } } //end options menu save }
function bl_complete_startup() { global $wpdb; $data = get_option("bepro_listings"); if (empty($data)) { Bepro_listings::bepro_listings_activate(); } //Load Languages load_plugin_textdomain('bepro-listings', false, dirname(plugin_basename(__FILE__)) . '/languages/'); //load default options if they dont already exist if (empty($data["bepro_listings_list_template_1"])) { //general $data["show_cost"] = 1; $data["show_con"] = 1; $data["show_geo"] = 1; $data["show_imgs"] = 1; $data["num_images"] = 3; $data["cat_heading"] = __("Categories", "bepro-listings"); $data["cat_empty"] = __("No Sub Categories", "bepro-listings"); $data["cat_singular"] = __("Category", "bepro-listings"); $data["permalink"] = "/" . BEPRO_LISTINGS_SEARCH_SLUG; $data["cat_permalink"] = "/" . BEPRO_LISTINGS_CATEGORY_SLUG; //forms $data["validate_form"] = "on"; $data["success_message"] = __('Listing Created and pending admin approval.', "bepro-listings"); $data["use_tiny_mce"] = ""; $data["default_status"] = 'pending'; $data["default_user_id"] = get_current_user_id(); $data["fail_message"] = __("Issue saving listing. Try again or contact the Admin", "bepro-listings"); $data["form_cat_style"] = 2; $data["bepro_listings_cat_required"] = ""; $data["bepro_listings_cat_exclude"] = ""; //search listings $data["default_image"] = plugins_url("images/no_img.jpg", __FILE__); $data["link_new_page"] = 1; $data["ajax_on"] = "on"; $data["num_listings"] = 8; $data["distance"] = 150; $data["dist_measurement"] = 1; $data["search_names"] = 1; $data["title_length"] = 18; $data["desc_length"] = 80; $data["details_link"] = __("Item", "bepro-listings"); $data["show_web_link"] = ""; $data["currency_sign"] = "\$"; $data["show_date"] = 1; //Page/post $data["gallery_size"] = "thumbnail"; $data["gallery_cols"] = 3; $data["gallery_cols"] = 1; $data["show_details"] = 2; $data["add_detail_links"] = "on"; $data["protect_contact"] = ""; $data["show_content"] = 1; $data["tabs_type"] = 1; //map $data["map_query_type"] = "curl"; $data["map_use_api"] = 1; $data["map_zoom"] = "10"; //3rd party $data["buddypress"] = 0; //Payment $data["require_payment"] = ""; $data["publish_after_payment"] = ""; $data["redirect_need_funds"] = 1; $data["charge_amount"] = 1; //Support $data["footer_link"] = 0; //item page template $data['bepro_listings_item_title_template'] = 'bepro_listings_item_title'; $data['bepro_listings_item_gallery_template'] = "bepro_listings_item_gallery"; $data['bepro_listings_item_after_gallery_template'] = "bepro_listings_item_after_gallery"; $data['bepro_listings_item_details_template'] = 'bepro_listings_item_details'; $data['bepro_listings_item_content_template'] = 'bepro_listings_item_content_info'; //item list template $data = create_result_listing_templates($data); //save update_option("bepro_listings", $data); } //Things that need to change only if there is an upgrade $bepro_listings_version = get_option("bepro_listings_version"); if (version_compare($bepro_listings_version, '2.1.5', '<')) { //upgrade tables to utf8 if (is_numeric(substr($wpdb->prefix, -2, 1)) && is_multisite()) { $blogids = $wpdb->get_col("SELECT blog_id FROM {$wpdb->blogs}"); foreach ($blogids as $blogid_x) { $wpdb->query("ALTER TABLE " . $wpdb->base_prefix . $blogid_x . "_" . BEPRO_LISTINGS_TABLE_BASE . " CONVERT TO CHARACTER SET utf8;"); } } else { $wpdb->query("ALTER TABLE " . $wpdb->base_prefix . BEPRO_LISTINGS_TABLE_BASE . " CONVERT TO CHARACTER SET utf8;"); } } if (version_compare($bepro_listings_version, '2.1.90', '<')) { $data["map_use_api"] = 1; $data["map_zoom"] = "10"; $data["show_imgs"] = 1; } if (version_compare($bepro_listings_version, '2.1.992', '<')) { //support for BePro Cart if (is_numeric(substr($wpdb->prefix, -2, 1)) && is_multisite()) { $blogids = $wpdb->get_col("SELECT blog_id FROM {$wpdb->blogs}"); foreach ($blogids as $blogid_x) { if ($blogid_x == 1) { $blogid_x = ""; } else { $blogid_x = $blogid_x . "_"; } $wpdb->query("ALTER TABLE " . $wpdb->base_prefix . $blogid_x . BEPRO_LISTINGS_TABLE_BASE . " ADD COLUMN bl_order_id int(9) DEFAULT NULL AFTER lon, DROP COLUMN bepro_cart_id;"); //install new payments table create_bl_order_table($wpdb->base_prefix . $blogid_x . BEPRO_LISTINGS_ORDERS_TABLE_BASE); } } else { $wpdb->query("ALTER TABLE " . $wpdb->base_prefix . BEPRO_LISTINGS_TABLE_BASE . " ADD COLUMN bl_order_id int(9) DEFAULT NULL AFTER lon, DROP COLUMN bepro_cart_id;"); //install new payments table create_bl_order_table($wpdb->base_prefix . BEPRO_LISTINGS_ORDERS_TABLE_BASE); } //flat fee now works differently if ($data["flat_fee"]) { unset($data["flat_fee"]); } } if (version_compare($bepro_listings_version, '2.1.999', '<')) { if (is_numeric(substr($wpdb->prefix, -2, 1)) && is_multisite()) { $blogids = $wpdb->get_col("SELECT blog_id FROM {$wpdb->blogs}"); foreach ($blogids as $blogid_x) { if ($blogid_x == 1) { $blogid_x = ""; } else { $blogid_x = $blogid_x . "_"; } $tbl_1 = $wpdb->base_prefix . $blogid_x . BEPRO_LISTINGS_ORDERS_TABLE_BASE; $tbl_2 = $wpdb->base_prefix . $blogid_x . BEPRO_LISTINGS_TABLE_BASE; $wpdb->query("ALTER TABLE " . $tbl_1 . " ADD COLUMN expires DATETIME DEFAULT NULL AFTER date_paid;"); $orders = $wpdb->get_results("SELECT * FROM " . $tbl_1); foreach ($orders as $order) { $record = $wpdb->get_row("SELECT * FROM " . $tbl_2 . " WHERE bl_order_id = " . $order->bl_order_id . " LIMIT 1"); if ($record) { $wpdb->query("UPDATE " . $tbl_1 . " SET expires = '" . $record->expires . "' WHERE bl_order_id = " . $record->bl_order_id); } } $wpdb->query("ALTER TABLE " . $tbl_2 . " DROP COLUMN expires;"); } } else { $tbl_1 = $wpdb->prefix . BEPRO_LISTINGS_ORDERS_TABLE_BASE; $tbl_2 = $wpdb->prefix . BEPRO_LISTINGS_TABLE_BASE; $wpdb->query("ALTER TABLE " . $tbl_1 . " ADD COLUMN expires DATETIME DEFAULT NULL AFTER date_paid;"); $orders = $wpdb->get_results("SELECT * FROM " . $tbl_1); foreach ($orders as $order) { $record = $wpdb->get_row("SELECT * FROM " . $tbl_2 . " WHERE bl_order_id = " . $order->bl_order_id . " LIMIT 1"); if (@$record) { $wpdb->query("UPDATE " . $tbl_1 . " SET expires = '" . $record->expires . "' WHERE bl_order_id = " . $record->bl_order_id); } } $wpdb->query("ALTER TABLE " . $tbl_2 . " DROP COLUMN expires;"); } } if (version_compare($bepro_listings_version, '2.1.9994', '<')) { if (!empty($data["show_cost"])) { $data["show_cost"] = 1; } if (!empty($data["show_con"])) { $data["show_con"] = 1; } if (!empty($data["show_geo"])) { $data["show_geo"] = 1; } if (!empty($data["show_imgs"])) { $data["show_imgs"] = 1; } $data["show_details"] = 2; $data["show_content"] = 1; } if (version_compare($bepro_listings_version, '2.1.99995', '<')) { if ($data["show_details"] == "on") { $data["show_details"] = 2; } if ($data["show_content"] == "on") { $data["show_content"] = 1; } if ($data["show_geo"] == "on") { $data["show_geo"] = 1; } if ($data["show_con"] == "on") { $data["show_con"] = 1; } } if (version_compare($bepro_listings_version, '2.2.0004', '<')) { if (empty($data["desc_length"])) { $data["desc_length"] = 80; } } if ($bepro_listings_version != BEPRO_LISTINGS_VERSION) { $bepro_listings_version = BEPRO_LISTINGS_VERSION; //new features //show welcome screen to users who are updating set_transient('_bepro_listings_activation_redirect', 1, HOUR_IN_SECONDS); //set version update_option('bepro_listings_version', $bepro_listings_version); } }