Ejemplo n.º 1
0
 * @package GeoDirectory_Location_Manager
 *
 * @global object $wpdb WordPress Database object.
 */
global $wpdb, $table_prefix;
$rows = get_post_location_countries();
$nonce = wp_create_nonce('update_location_translate');
$post_action = isset($_POST['action']) ? $_POST['action'] : '';
$post_wpnonce = isset($_POST['update_location_translate']) ? $_POST['update_location_translate'] : '';
$post_country_slug = isset($_POST['country_slug']) && !empty($_POST['country_slug']) ? $_POST['country_slug'] : '';
$success = 0;
$submit = false;
if ($post_action == 'update_location_translate' && $post_wpnonce && $post_country_slug && is_array($post_country_slug)) {
    if (wp_verify_nonce($post_wpnonce, 'update_location_translate')) {
        foreach ($post_country_slug as $post_slug) {
            $post_country = get_post_country_by_slug($post_slug);
            $return = geodir_update_location_translate($post_slug);
            if ($return) {
                $success++;
            }
        }
        $submit = true;
    }
}
$msg = '';
if ($submit) {
    if ($success > 0) {
        $msg = MSG_MANAGE_LOCATION_TRANSLATE_SUCCESS;
    } else {
        $msg = MSG_MANAGE_LOCATION_TRANSLATE_FAIL;
    }
Ejemplo n.º 2
0
/**
 * Update location with translated string.
 *
 * @since 1.0.0
 * @package GeoDirectory_Location_Manager
 *
 * @global object $wpdb WordPress Database object.
 * @global string $plugin_prefix Geodirectory plugin table prefix.
 *
 * @param $country_slug
 * @return bool
 */
function geodir_update_location_translate($country_slug)
{
    global $wpdb, $plugin_prefix;
    if ($country_slug == '') {
        return false;
    }
    $country = get_post_country_by_slug($country_slug);
    if ($country == '') {
        return false;
    }
    $geodir_posttypes = geodir_get_posttypes();
    $country_translated = __($country, GEODIRECTORY_TEXTDOMAIN);
    $country_translated = trim(wp_unslash($country_translated));
    $country_slug_translated = sanitize_title($country_translated);
    $country_slug = apply_filters('geodir_filter_update_location_translate', $country_slug, $country, $country_translated, $country_slug_translated);
    do_action('geodir_action_update_location_translate', $country_slug, $country, $country_translated, $country_slug_translated);
    if ($country_slug == $country_slug_translated) {
        return false;
    }
    $sql = $wpdb->prepare("SELECT location_id FROM " . POST_LOCATION_TABLE . " WHERE country_slug=%s", array($country_slug));
    $location_ids = $wpdb->get_col($sql);
    /* update in post locations table */
    $update_locations = false;
    //$sql = $wpdb->prepare( "UPDATE " . POST_LOCATION_TABLE . " SET country=%s, country_slug=%s WHERE country_slug=%s", array( $country_translated, $country_slug_translated, $country_slug ) );
    $sql = $wpdb->prepare("UPDATE " . POST_LOCATION_TABLE . " SET country_slug=%s WHERE country_slug=%s", array($country_slug_translated, $country_slug));
    $update_locations = $wpdb->query($sql);
    /* update in post listings table */
    $update_listings = false;
    if (!empty($location_ids)) {
        $location_ids = implode(",", $location_ids);
        foreach ($geodir_posttypes as $geodir_posttype) {
            $table = $plugin_prefix . $geodir_posttype . '_detail';
            $sql = "SELECT post_id, post_locations, post_location_id FROM " . $table . " WHERE post_location_id IN(" . $location_ids . ")";
            $listings = $wpdb->get_results($sql);
            if (!empty($listings)) {
                foreach ($listings as $listing) {
                    $post_id = $listing->post_id;
                    $location_id = $listing->post_location_id;
                    $post_locations = $listing->post_locations;
                    if ($post_locations != '') {
                        $post_locations_arr = explode(",", $post_locations);
                        if (isset($post_locations_arr[2]) && trim($post_locations_arr[2]) != '[]') {
                            $post_locations_arr[2] = '[' . $country_slug_translated . ']';
                            $post_locations = implode(",", $post_locations_arr);
                        } else {
                            $post_locations = '';
                        }
                    }
                    if ($post_locations == '') {
                        $location_info = geodir_get_location_by_id('', $location_id);
                        if (!empty($location_info) && isset($location_info->location_id)) {
                            $post_locations = '[' . $location_info->city_slug . '],[' . $location_info->region_slug . '],[' . $country_slug_translated . ']';
                        }
                    }
                    $sql = $wpdb->prepare("UPDATE " . $table . " SET post_locations=%s, post_country=%s WHERE post_id=%d", array($post_locations, $country_translated, $post_id));
                    $update_locations = $wpdb->query($sql);
                }
            }
        }
        $update_locations = true;
    }
    /* update in location seo table */
    $update_location_seo = false;
    $sql = $wpdb->prepare("UPDATE " . LOCATION_SEO_TABLE . " SET country_slug=%s WHERE country_slug=%s", array($country_slug_translated, $country_slug));
    $update_location_seo = $wpdb->query($sql);
    if ($update_locations || $update_listings || $update_location_seo) {
        return true;
    }
    return false;
}