/** * ΑΥΤΟΜΑΤΙΣΜΟΣ: ΔΗΜΙΟΥΡΓΙΑ ΣΕΛΙΔΩΝ & ΕΝΗΜΕΡΩΣΗ URL */ function carephone_automation_logic() { if (isset($_GET['ckesisis']) && $_GET['ckesisis'] == '1') { $projects = get_posts([ 'post_type' => 'nproject', 'posts_per_page' => -1, 'fields' => 'ids' ]); foreach ($projects as $id) { $project_title = get_the_title($id); $count_meta = get_post_meta($id, 'services', true); $count = is_array($count_meta) ? $count_meta[0] : $count_meta; $count = intval($count); for ($i = 0; $i < $count; $i++) { $s_val = get_post_meta($id, 'services_' . $i . '_service_name', true); $s_id = is_array($s_val) ? $s_val[0] : $s_val; if (is_array($s_id)) $s_id = $s_id[0]; $s_id = intval($s_id); if (!$s_id) continue; $service_title = get_the_title($s_id); $expected_title = $service_title . ' για ' . $project_title; // Αναζήτηση σελίδας $page = get_page_by_title($expected_title, OBJECT, 'page'); if (!$page) { $slug_search = sanitize_title($expected_title); $page_query = new WP_Query([ 'post_type' => 'page', 'name' => $slug_search, 'posts_per_page' => 1, 'fields' => 'ids' ]); if ($page_query->have_posts()) { $page = get_post($page_query->posts[0]); } } if ($page) { $new_url = '/' . $page->post_name . '/'; update_post_meta($id, 'services_' . $i . '_service_page_url_', $new_url); update_post_meta($id, '_services_' . $i . '_service_page_url_', 'field_659693a1e91bf'); } else { $price = get_post_meta($id, 'services_' . $i . '_service_price', true); $new_page_slug = create_wp_page($expected_title, $id, $s_id, $price); if ($new_page_slug) { update_post_meta($id, 'services_' . $i . '_service_page_url_', '/' . $new_page_slug . '/'); update_post_meta($id, '_services_' . $i . '_service_page_url_', 'field_659693a1e91bf'); } } } } die("done"); } } add_action('init', 'carephone_automation_logic'); function create_wp_page($page_title, $project_id, $service_id, $price = 0) { $page_data = array( 'post_title' => $page_title, 'post_content' => '', 'post_status' => 'publish', 'post_type' => 'page', ); $page_id = wp_insert_post($page_data); if ($page_id && !is_wp_error($page_id)) { update_post_meta($page_id, 'project_id', $project_id); update_post_meta($page_id, 'service_id', $service_id); update_post_meta($page_id, 'price', $price); update_post_meta($page_id, 'price_without_vat', round(($price / 1.24), 2)); wp_add_post_tags($page_id, 'project-service-page'); return get_post($page_id)->post_name; } return false; }