/** * Create post from $args data * @param array $args Custom data * @return boolean True if the post was created successfully, and False if not. */ public function moove_create_post($args) { $form_data = $args['form_data']; $key = json_decode(wp_unslash($args['key'])); $xml_data_values = $args['value']; $new_form_data = array(); foreach ($form_data as $form_key => $form_value) { if ($form_value !== '0' && $form_key !== 'post_status' && $form_key !== 'post_type' && $form_key !== 'post_author' && $form_key !== 'post_featured_image') { if ($form_key === 'taxonomies' && count($form_value)) { $j = 0; foreach ($form_value as $tax_key => $tax_value) { if ($tax_value['title'] !== '0') { $j++; $_key = Moove_Importer_Controller::moove_recursive_array_search($tax_value['title'], $xml_data_values['values']); if (is_array($_key)) { $tax_title = $xml_data_values['values'][$_key[0]]['value']; } $new_form_data[$form_key][] = array('taxonomy' => $tax_value['taxonomy'], 'title' => $tax_title); } } } elseif ($form_key === 'post_date') { $_key = Moove_Importer_Controller::moove_recursive_array_search($form_value, $xml_data_values['values']); if (is_array($_key)) { $new_form_data[$form_key] = DateTime::createFromFormat("D, d M Y H:i:s O", $xml_data_values['values'][$_key[0]]['value'])->format('Y-m-d H:i:s'); } } else { $_key = Moove_Importer_Controller::moove_recursive_array_search($form_value, $xml_data_values['values']); if (is_array($_key)) { $new_form_data[$form_key] = $xml_data_values['values'][$_key[0]]['value']; } } } else { if ($form_key === 'post_status' || $form_key === 'post_type') { $new_form_data[$form_key] = $form_value; } elseif ($form_key === 'post_author') { $new_form_data[$form_key] = intval($form_value); } } } // Create post object. $new_post = array(); foreach ($new_form_data as $form_key => $form_value) { $new_post[$form_key] = $form_value; } // Insert the post into the database. $post_id = wp_insert_post($new_post); foreach ($new_form_data['taxonomies'] as $taxonomy_value) { if ($taxonomy_value['title'] !== "0") { $title = $taxonomy_value['title']; $taxonomy = $taxonomy_value['taxonomy']; $slug = sanitize_title($taxonomy_value['title']); wp_set_post_terms($post_id, $slug, $taxonomy, true); $_new_taxonomy = get_term_by('name', $slug, $taxonomy); wp_update_term($_new_taxonomy->term_id, $taxonomy, array('name' => $title, 'slug' => $slug)); } } Moove_Importer_Controller::moove_set_featured_image($post_id, $new_form_data['post_featured_image']); return $post_id ? true : false; }
/** * Create post function * * @return void */ public function moove_create_post() { $args = array('key' => sanitize_text_field(esc_sql($_POST['key'])), 'value' => wp_unslash($_POST['value']), 'form_data' => esc_sql(wp_unslash($_POST['form_data']))); $move_create_post = new Moove_Importer_Controller(); $create_post = $move_create_post->moove_create_post($args); echo $create_post; die; }