/** * Save the new field data for the nav menu. * * @param $menu_id * @param $menu_item_db_id * @param $args */ public function update_nav_fields($menu_id, $menu_item_db_id, $args) { // Hide on mobile. if (isset($_POST['hide-menu-on-mobile'][$menu_item_db_id])) { update_post_meta($menu_item_db_id, 'hide_menu_on_mobile', empty($_POST['hide-menu-on-mobile'][$menu_item_db_id]) ? false : 'on'); } else { delete_post_meta($menu_item_db_id, 'hide_menu_on_mobile'); } // Image. if (isset($_POST['menu-item-image']) && is_array($_POST['menu-item-image'])) { if (!isset($_POST['menu-item-image'][$menu_item_db_id]) || !$_POST['menu-item-image'][$menu_item_db_id]) { delete_post_thumbnail($menu_item_db_id); } if (isset($_POST['menu-item-image'][$menu_item_db_id])) { set_post_thumbnail($menu_item_db_id, absint($_POST['menu-item-image'][$menu_item_db_id])); } } if (isset($_POST['menu-item-icon']) && is_array($_POST['menu-item-icon'])) { if (isset($_POST['menu-item-icon'][$menu_item_db_id])) { update_post_meta($menu_item_db_id, '_menu_item_icon', sanitize_text_field($_POST['menu-item-icon'][$menu_item_db_id])); } } if (isset($_POST['menu-item-widget-area']) && isset($_POST['menu-item-widget-area'][$menu_item_db_id]) && is_array($_POST['menu-item-widget-area'])) { update_post_meta($menu_item_db_id, '_menu_item_widget_area', sanitize_text_field($_POST['menu-item-widget-area'][$menu_item_db_id])); } }
/** * Delete attachments linked to a specified post * @param int $parent_id Parent id of post to delete attachments for */ function wp_delete_attachments($parent_id, $unlink = true, $type = 'images') { if ($type == 'images' and has_post_thumbnail($parent_id)) { delete_post_thumbnail($parent_id); } $ids = array(); $attachments = get_posts(array('post_parent' => $parent_id, 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null)); foreach ($attachments as $attach) { if ($type == 'files' and !wp_attachment_is_image($attach->ID)) { if ($unlink) { wp_delete_attachment($attach->ID, true); } else { $ids[] = $attach->ID; } } elseif ($type == 'images' and wp_attachment_is_image($attach->ID)) { if ($unlink) { wp_delete_attachment($attach->ID, true); } else { $ids[] = $attach->ID; } } } global $wpdb; if (!empty($ids)) { $ids_string = implode(',', $ids); // unattach $result = $wpdb->query("UPDATE {$wpdb->posts} SET post_parent = 0 WHERE post_type = 'attachment' AND ID IN ( {$ids_string} )"); foreach ($ids as $att_id) { clean_attachment_cache($att_id); } } return $ids; }
/** * Delete the post thumbnail when deleted from front end * * @since 0.1 * * @param array $data Sanitized data to use for saving. * * @return bool Always returns true. */ public function delete($data) { $postid = isset($data['postid']) ? $data['postid'] : false; delete_post_thumbnail($postid); do_action('lasso_featured_image_deleted', $postid, get_current_user_ID()); return true; }
function mc_event_post($action, $data, $event_id) { // if the event save was successful. if ($action == 'add' || $action == 'copy') { $post_id = mc_create_event_post($data, $event_id); } else { if ($action == 'edit') { if (isset($_POST['event_post']) && ($_POST['event_post'] == 0 || $_POST['event_post'] == '')) { $post_id = mc_create_event_post($data, $event_id); } else { $post_id = $_POST['event_post']; } // If, after all that, the post doesn't exist, create it. if (!get_post_status($post_id)) { mc_create_event_post($data, $event_id); } $term = mc_get_category_detail($data['event_category'], 'category_term'); if (!$term) { $term = wp_insert_term('General', 'mc-event-category'); $term = !is_wp_error($term) ? $term['term_id'] : false; if ($term) { $update = mc_update_category('category_term', $term, $data['event_category']); } } $privacy = mc_get_category_detail($data['event_category'], 'category_private') == 1 ? 'private' : 'publish'; $title = $data['event_title']; $template = apply_filters('mc_post_template', 'details', $term); $data['shortcode'] = "[my_calendar_event event='{$event_id}' template='{$template}' list='']"; $description = $data['event_desc']; $excerpt = $data['event_short']; $post_status = $privacy; $auth = $data['event_author']; $type = 'mc-events'; $my_post = array('ID' => $post_id, 'post_title' => $title, 'post_content' => $description, 'post_status' => $post_status, 'post_author' => $auth, 'post_name' => sanitize_title($title), 'post_date' => date('Y-m-d H:i:s', current_time('timestamp')), 'post_type' => $type, 'post_excerpt' => $excerpt); if (mc_switch_sites() && defined(BLOG_ID_CURRENT_SITE)) { switch_to_blog(BLOG_ID_CURRENT_SITE); } $post_id = wp_update_post($my_post); wp_set_object_terms($post_id, (int) $term, 'mc-event-category'); if ($data['event_image'] == '') { delete_post_thumbnail($post_id); } else { $attachment_id = isset($_POST['event_image_id']) && is_numeric($_POST['event_image_id']) ? $_POST['event_image_id'] : false; if ($attachment_id) { set_post_thumbnail($post_id, $attachment_id); } } $access = isset($_POST['events_access']) ? $_POST['events_access'] : array(); $access_terms = implode(',', array_values($access)); mc_update_event('event_access', $access_terms, $event_id, '%s'); do_action('mc_update_event_post', $post_id, $_POST, $data, $event_id); if (mc_switch_sites()) { restore_current_blog(); } } } return $post_id; }
/** * When menu item removed remove menu image metadata. */ public function delete_menu_item_image_action() { $menu_item_id = (int) $_REQUEST['menu-item']; check_admin_referer('delete-menu_item_image_' . $menu_item_id); if (is_nav_menu_item($menu_item_id) && has_post_thumbnail($menu_item_id)) { delete_post_thumbnail($menu_item_id); delete_post_meta($menu_item_id, 'menu_item_icon'); delete_post_meta($menu_item_id, 'menu-item-bg-img'); } }
/** * */ function erm_update_menu_item() { //echo '<pre>'; print_r( $_POST ); echo '</pre>'; exit(); if (isset($_POST['post_id'])) { $post_id = absint($_POST['post_id']); wp_update_post(array('ID' => $post_id, 'post_title' => $_POST['title'], 'post_name' => $_POST['title'], 'post_content' => $_POST['content'])); update_post_meta($post_id, '_erm_visible', $_POST['visible'] == 'true' ? true : false); update_post_meta($post_id, '_erm_prices', $_POST['prices']); $image_id = absint($_POST['image_id']); if ($image_id != 0) { set_post_thumbnail($post_id, $image_id); } else { delete_post_thumbnail($post_id); } wp_send_json_success(); } exit; }
/** * Delete attachments linked to a specified post * @param int $parent_id Parent id of post to delete attachments for */ function wp_delete_attachments($parent_id, $unlink = true, $type = '') { if ($type == 'images' and has_post_thumbnail($parent_id)) { delete_post_thumbnail($parent_id); } foreach (get_posts(array('post_parent' => $parent_id, 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null)) as $attach) { if ($type == 'files' and !wp_attachment_is_image($attach->ID)) { wp_delete_attachment($attach->ID, true); } elseif ($type == 'images' and wp_attachment_is_image($attach->ID) or "" == $type) { if ($unlink or !wp_attachment_is_image($attach->ID)) { wp_delete_attachment($attach->ID, true); } else { global $wpdb; $sql = "delete a,b,c\n\t\t\t\t\tFROM " . $wpdb->posts . " a\n\t\t\t\t\tLEFT JOIN " . $wpdb->term_relationships . " b ON ( a.ID = b.object_id )\n\t\t\t\t\tLEFT JOIN " . $wpdb->postmeta . " c ON ( a.ID = c.post_id )\n\t\t\t\t\tLEFT JOIN " . $wpdb->posts . " d ON ( a.ID = d.post_parent )\n\t\t\t\t\tWHERE a.ID = " . $attach->ID . ";"; $wpdb->query($wpdb->prepare($sql, '')); } } } }
public final function set_banner_image() { $post_ID = intval($_POST['post_id']); if (!current_user_can('edit_post', $post_ID)) { wp_die(-1); } $banner_id = intval($_POST['banner_id']); check_ajax_referer("update-post_{$post_ID}"); if ($banner_id == '-1') { if (delete_post_thumbnail($post_ID)) { wp_send_json_success(''); } else { wp_die(0); } } $course = \Ekko\Core\CoursePostType::singleton()->get_course($post_ID); if (set_post_thumbnail($course->ID, $banner_id)) { wp_send_json_success($this->banner_thumbnail_html($course)); } wp_die(0); }
private function update_post_thumbnail($post_id, $reserved_post_thumb_path) { include_once ABSPATH . 'wp-admin/includes/image.php'; $upload_dir = wp_upload_dir(); $image_data = file_get_contents($reserved_post_thumb_path); $file_name = basename($reserved_post_thumb_path); if (wp_mkdir_p($upload_dir['path'])) { $file = $upload_dir['path'] . '/' . $file_name; } else { $file = $upload_dir['basedir'] . '/' . $file_name; } file_put_contents($file, $image_data); $wp_file_type = wp_check_filetype($file_name, null); $attachment = array('post_mime_type' => $wp_file_type['type'], 'post_title' => sanitize_file_name($file_name), 'post_content' => '', 'post_status' => 'inherit'); delete_post_thumbnail($post_id); $attachment_id = wp_insert_attachment($attachment, $file, $post_id); $attach_data = wp_generate_attachment_metadata($attachment_id, $file); if (!empty($attach_data) && !is_wp_error($attach_data)) { $res = wp_update_attachment_metadata($attachment_id, $attach_data); set_post_thumbnail($post_id, $attachment_id); return $res; } }
public static function deletePostPicture($postId) { delete_post_thumbnail($postId); }
/** * Update item thumbnail via ajax action. * * @since 2.0 */ public function wp_ajax_set_menu_item_thumbnail() { $json = !empty($_REQUEST['json']); $post_ID = intval($_POST['post_id']); if (!current_user_can('edit_post', $post_ID)) { wp_die(-1); } $thumbnail_id = intval($_POST['thumbnail_id']); $is_hovered = (bool) $_POST['is_hover']; check_ajax_referer("update-menu-item"); if ($thumbnail_id == '-1') { if ($is_hovered) { $success = delete_post_meta($post_ID, '_thumbnail_hover_id'); } else { $success = delete_post_thumbnail($post_ID); } } else { if ($is_hovered) { $success = update_post_meta($post_ID, '_thumbnail_hover_id', $thumbnail_id); } else { $success = set_post_thumbnail($post_ID, $thumbnail_id); } } if ($success) { $return = $this->wp_post_thumbnail_only_html($post_ID); $json ? wp_send_json_success($return) : wp_die($return); } wp_die(0); }
public static function update_post_meta($meta_vars, $post_id) { // prepare the meta vars list($meta_key_value, $multi_repeated, $files) = self::prepare_meta_fields($meta_vars); // set featured image if there's any // if not in admin or if in admin (but doing an ajax call) if (is_admin() && defined('DOING_AJAX') && DOING_AJAX || !is_admin()) { if (isset($_POST['feat-image-id']) && $_POST['feat-image-id'] != 0) { $attachment_id = $_POST['feat-image-id']; fes_associate_attachment($attachment_id, $post_id); set_post_thumbnail($post_id, $attachment_id); } if (!isset($_POST['feat-image-id']) || $_POST['feat-image-id'] == 0) { delete_post_thumbnail($post_id); } } // save all custom fields foreach ($meta_key_value as $meta_key => $meta_value) { update_post_meta($post_id, $meta_key, $meta_value); } // save any multicolumn repeatable fields foreach ($multi_repeated as $repeat_key => $repeat_value) { // first, delete any previous repeatable fields delete_post_meta($post_id, $repeat_key); // now add them foreach ($repeat_value as $repeat_field) { update_post_meta($post_id, $repeat_key, $repeat_field); } } // save any files attached foreach ($files as $file_input) { if (!isset($_POST[$file_input['name']])) { continue; } $ids = array(); // We need to detach all previously attached files for this field. See #559 $old_files = get_post_meta($post_id, $file_input['name'], true); if (!empty($old_files) && is_array($old_files)) { foreach ($old_files as $file_id) { global $wpdb; $wpdb->update($wpdb->posts, array('post_parent' => 0), array('ID' => $file_id), array('%d'), array('%d')); } } foreach ($_POST[$file_input['name']] as $file => $url) { if (empty($url)) { continue; } $author_id = 0; if (!current_user_can('manage_shop_settings')) { $author_id = get_post_field('post_author', $post_id); } $attachment_id = fes_get_attachment_id_from_url($url, $author_id); fes_associate_attachment($attachment_id, $post_id); $ids[] = $attachment_id; } update_post_meta($post_id, $file_input['name'], $ids); } }
/** * Handles updating an idea * * @package WP Idea Stream * @subpackage ideas/functions * * @since 2.0.0 * * @uses check_admin_referer() to check the request has been done from current site * @uses wp_idea_stream_get_redirect_url() to get default redirect url * @uses get_query_var() to get the value of a specific query var * @uses wp_idea_stream_get_post_type() to get the ideas post type identifier * @uses get_queried_object() to try to get the idea object WordPress built * @uses wp_idea_stream_ideas_get_idea_by_name() to get an idea object out of its post name * @uses wp_idea_stream_user_can() to check user's capability * @uses wp_idea_stream_add_message() to add a feddback message to user * @uses wp_safe_redirect() to safely redirect the user and avoid duplicates * @uses wp_idea_stream_ideas_save_idea() to save the idea * @uses wp_idea_stream_get_form_url() to get the add new form url * @uses wp_idea_stream_ideas_get_idea_permalink() to get the idea link */ function wp_idea_stream_ideas_update_idea() { global $wp_query; // Bail if not a post request if ('POST' != strtoupper($_SERVER['REQUEST_METHOD'])) { return; } // Bail if not a post idea request if (empty($_POST['wp_idea_stream']) || !is_array($_POST['wp_idea_stream'])) { return; } // Bail if it's not an update if (empty($_POST['wp_idea_stream']['_the_id'])) { return; } // Check nonce check_admin_referer('wp_idea_stream_save'); $redirect = wp_idea_stream_get_redirect_url(); // Get idea name $idea_name = get_query_var(wp_idea_stream_get_post_type()); // Get Idea Object $idea = get_queried_object(); // If queried object doesn't match or wasn't helpfull, try to get the idea using core function if (empty($idea->post_name) || empty($idea_name) || $idea_name != $idea->post_name) { $idea = wp_idea_stream_ideas_get_idea_by_name($idea_name); } // Found no idea, redirect and inform the user if (empty($idea->ID)) { wp_idea_stream_add_message(array('type' => 'error', 'content' => __('The idea you are trying to edit does not seem to exist.', 'wp-idea-stream'))); // Redirect to main archive page wp_safe_redirect($redirect); exit; } // Checks if the user can edit the idea if (!wp_idea_stream_ideas_can_edit($idea)) { // Add feedback to the user wp_idea_stream_add_message(array('type' => 'error', 'content' => __('You are not allowed to edit this idea.', 'wp-idea-stream'))); // Redirect to main archive page wp_safe_redirect($redirect); exit; } $updated = array_diff_key($_POST['wp_idea_stream'], array('save' => 'submit')); // Title & content are required if (empty($updated['_the_title']) || empty($updated['_the_content'])) { // Add feedback to the user wp_idea_stream_add_message(array('type' => 'error', 'content' => __('Title and description are required fields.', 'wp-idea-stream'))); // Simply stop, so that the user keeps the posted values. return; } // Reset '_the_id' param to the ID of the idea found $updated['_the_id'] = $idea->ID; $feedback_message = array(); $featured_error = __('There was a problem saving the featured image, sorry.', 'wp-idea-stream'); $featured_type = 'info'; // Take care of the featured image $thumbnail_id = (int) get_post_thumbnail_id($idea); if (!empty($updated['_the_thumbnail'])) { $thumbnail_src = key($updated['_the_thumbnail']); $thumbnail = reset($updated['_the_thumbnail']); // Update the Featured image if (!is_numeric($thumbnail) || $thumbnail_id !== (int) $thumbnail) { if (is_numeric($thumbnail)) { // validate the attachment if (!get_post($thumbnail)) { $feedback_message[] = $featured_error; // Set the new Featured image } else { set_post_thumbnail($idea->ID, $thumbnail); } } else { $sideload = WP_Idea_Stream_Ideas_Thumbnail::start($thumbnail_src, $idea->ID); if (is_wp_error($sideload->result)) { $feedback_message[] = $featured_error; } } } // Delete the featured image } elseif (!empty($thumbnail_id)) { delete_post_thumbnail($idea); } // Update the idea $id = wp_idea_stream_ideas_save_idea($updated); if (empty($id)) { // Set the feedback for the user $featured_type = 'error'; $feedback_message = __('Something went wrong while trying to update your idea.', 'wp-idea-stream'); // Redirect to the form $redirect = wp_idea_stream_get_form_url(wp_idea_stream_edit_slug(), $idea_name); // Redirect to the idea } else { $redirect = wp_idea_stream_ideas_get_idea_permalink($id); } if (!empty($feedback_message)) { // Add feedback to the user wp_idea_stream_add_message(array('type' => $featured_type, 'content' => join(' ', $feedback_message))); } wp_safe_redirect($redirect); exit; }
/** * Process an MLA_List_Table custom bulk action * * Creates new items from the "Bulk Translate" list. * * @since 2.13 * * @param array $item_content NULL, to indicate no handler. * @param string $bulk_action the requested action. * @param integer $post_id the affected attachment. * * @return object updated $item_content. NULL if no handler, otherwise * ( 'message' => error or status message(s), 'body' => '' ) */ public static function mla_list_table_custom_bulk_action($item_content, $bulk_action, $post_id) { if (self::MLA_GFI_ACTION != $bulk_action) { return $item_content; } /* translators: 1: post ID */ $item_prefix = sprintf(__('Item %1$d', 'media-library-assistant'), $post_id) . ', '; /* * If there is a real thumbnail image, no generation is required or allowed */ $thumbnail = wp_get_attachment_image($post_id); if (!empty($thumbnail)) { return array('message' => $item_prefix . __('has native thumbnail.', 'media-library-assistant')); } /* * Look for the "Featured Image" as an alternate thumbnail for PDFs, etc. */ $thumbnail = get_post_thumbnail_id($post_id); if (!empty($thumbnail)) { switch (self::$bulk_action_options['existing_thumbnails']) { case 'ignore': break; case 'trash': delete_post_thumbnail($post_id); wp_delete_post(absint($thumbnail), false); break; case 'delete': delete_post_thumbnail($post_id); wp_delete_post(absint($thumbnail), true); break; case 'keep': default: return array('message' => $item_prefix . __('Featured Image retained.', 'media-library-assistant')); } } /* * Validate the file existance and type */ $file = get_attached_file($post_id); if (empty($file)) { /* translators: 1: ERROR tag 2: Item post ID */ return array('message' => sprintf(__('%1$s: %2$sno attached file.', 'media-library-assistant'), __('ERROR', 'media-library-assistant'), $item_prefix)); } if (!in_array(strtolower(pathinfo($file, PATHINFO_EXTENSION)), array('ai', 'eps', 'pdf', 'ps'))) { return array('message' => $item_prefix . __('unsupported file type.', 'media-library-assistant')); } /* * Generate a thumbnail */ require_once MLA_PLUGIN_PATH . 'includes/class-mla-image-processor.php'; $results = MLAImageProcessor::mla_handle_thumbnail_sideload($file, self::$bulk_action_options); if (!empty($results['error'])) { /* translators: 1: ERROR tag 2: Item post ID */ return array('message' => sprintf(__('%1$s: %2$sthumbnail generation failed', 'media-library-assistant'), __('ERROR', 'media-library-assistant'), $item_prefix) . ' - ' . $results['error']); } /* * Adjust the file name for the new item */ $pathinfo = pathinfo($results['name']); if (isset(self::$bulk_action_options['suffix'])) { $pathinfo['filename'] = sanitize_file_name($pathinfo['filename'] . strtolower(self::$bulk_action_options['suffix'])); } $pathinfo['extension'] = 'image/jpeg' == $results['type'] ? 'jpg' : 'png'; $results['name'] = $pathinfo['filename'] . '.' . $pathinfo['extension']; $overrides = array('test_form' => false, 'test_size' => true, 'test_upload' => true); // move the temporary file into the uploads directory $results = wp_handle_sideload($results, $overrides); $item_data = get_post($post_id, ARRAY_A); unset($item_data['ID']); unset($item_data['post_author']); unset($item_data['post_date']); unset($item_data['post_date_gmt']); if (isset(self::$bulk_action_options['suffix'])) { $item_data['post_title'] .= self::$bulk_action_options['suffix']; } unset($item_data['post_name']); unset($item_data['post_modified']); unset($item_data['post_modified_gmt']); $item_parent = $item_data['post_parent']; unset($item_data['post_parent']); $item_data['guid'] = $results['url']; $item_data['post_mime_type'] = $results['type']; unset($item_data['comment_count']); unset($item_data['ancestors']); unset($item_data['post_category']); unset($item_data['tags_input']); // Insert the attachment. $item_id = wp_insert_attachment($item_data, $results['file'], $item_parent); if (empty($item_id)) { /* translators: 1: ERROR tag 2: Item post ID */ return array('message' => sprintf(__('%1$s: %2$swp_insert_attachment failed.', 'media-library-assistant'), __('ERROR', 'media-library-assistant'), $item_prefix)); } // Make sure that this file is included, as wp_generate_attachment_metadata() depends on it. require_once ABSPATH . 'wp-admin/includes/image.php'; // Generate the metadata for the attachment, and update the database record. $item_data = wp_generate_attachment_metadata($item_id, $results['file']); wp_update_attachment_metadata($item_id, $item_data); // Assign the new item as the source item's Featured Image delete_post_thumbnail($post_id); set_post_thumbnail($post_id, $item_id); MLA_Thumbnail::$bulk_action_includes[] = $item_id; /* translators: 1: Item post ID, 2: new thumbnail item ID */ $item_content = array('message' => sprintf(__('%1$sthumbnail generated as new item %2$s.', 'media-library-assistant'), $item_prefix, $item_id)); return $item_content; }
function wp_ajax_set_post_thumbnail() { $post_ID = intval($_POST['post_id']); if (!current_user_can('edit_post', $post_ID)) { wp_die(-1); } $thumbnail_id = intval($_POST['thumbnail_id']); check_ajax_referer("set_post_thumbnail-{$post_ID}"); if ($thumbnail_id == '-1') { if (delete_post_thumbnail($post_ID)) { wp_die(_wp_post_thumbnail_html(null, $post_ID)); } else { wp_die(0); } } if (set_post_thumbnail($post_ID, $thumbnail_id)) { wp_die(_wp_post_thumbnail_html($thumbnail_id, $post_ID)); } wp_die(0); }
/** * Save product images. * * @since 2.5.0 * @param array $images * @param int $id */ private function save_product_images($id, $images) { if (is_array($images)) { $gallery = array(); foreach ($images as $image) { if (isset($image['position']) && $image['position'] == 0) { $attachment_id = isset($image['id']) ? absint($image['id']) : 0; if (0 === $attachment_id && isset($image['src'])) { $upload = $this->upload_product_image(esc_url_raw($image['src'])); if (is_wp_error($upload)) { throw new WC_CLI_Exception('woocommerce_cli_cannot_upload_product_image', $upload->get_error_message()); } $attachment_id = $this->set_product_image_as_attachment($upload, $id); } set_post_thumbnail($id, $attachment_id); } else { $attachment_id = isset($image['id']) ? absint($image['id']) : 0; if (0 === $attachment_id && isset($image['src'])) { $upload = $this->upload_product_image(esc_url_raw($image['src'])); if (is_wp_error($upload)) { throw new WC_CLI_Exception('woocommerce_cli_cannot_upload_product_image', $upload->get_error_message()); } $gallery[] = $this->set_product_image_as_attachment($upload, $id); } else { $gallery[] = $attachment_id; } } } if (!empty($gallery)) { update_post_meta($id, '_product_image_gallery', implode(',', $gallery)); } } else { delete_post_thumbnail($id); update_post_meta($id, '_product_image_gallery', ''); } }
/** * Edit a post. * * @since 1.5.0 * * @param array $args Method parameters. * @return bool|IXR_Error True on success. */ public function mw_editPost($args) { $this->escape($args); $post_ID = (int) $args[0]; $username = $args[1]; $password = $args[2]; $content_struct = $args[3]; $publish = isset($args[4]) ? $args[4] : 0; if (!($user = $this->login($username, $password))) { return $this->error; } /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */ do_action('xmlrpc_call', 'metaWeblog.editPost'); $postdata = get_post($post_ID, ARRAY_A); // If there is no post data for the give post id, stop // now and return an error. Other wise a new post will be // created (which was the old behavior). if (!$postdata || empty($postdata['ID'])) { return new IXR_Error(404, __('Invalid post ID.')); } if (!current_user_can('edit_post', $post_ID)) { return new IXR_Error(401, __('Sorry, you do not have the right to edit this post.')); } // Use wp.editPost to edit post types other than post and page. if (!in_array($postdata['post_type'], array('post', 'page'))) { return new IXR_Error(401, __('Invalid post type')); } // Thwart attempt to change the post type. if (!empty($content_struct['post_type']) && $content_struct['post_type'] != $postdata['post_type']) { return new IXR_Error(401, __('The post type may not be changed.')); } // Check for a valid post format if one was given if (isset($content_struct['wp_post_format'])) { $content_struct['wp_post_format'] = sanitize_key($content_struct['wp_post_format']); if (!array_key_exists($content_struct['wp_post_format'], get_post_format_strings())) { return new IXR_Error(404, __('Invalid post format')); } } $this->escape($postdata); $ID = $postdata['ID']; $post_content = $postdata['post_content']; $post_title = $postdata['post_title']; $post_excerpt = $postdata['post_excerpt']; $post_password = $postdata['post_password']; $post_parent = $postdata['post_parent']; $post_type = $postdata['post_type']; $menu_order = $postdata['menu_order']; // Let WordPress manage slug if none was provided. $post_name = ""; $post_name = $postdata['post_name']; if (isset($content_struct['wp_slug'])) { $post_name = $content_struct['wp_slug']; } // Only use a password if one was given. if (isset($content_struct['wp_password'])) { $post_password = $content_struct['wp_password']; } // Only set a post parent if one was given. if (isset($content_struct['wp_page_parent_id'])) { $post_parent = $content_struct['wp_page_parent_id']; } // Only set the menu_order if it was given. if (isset($content_struct['wp_page_order'])) { $menu_order = $content_struct['wp_page_order']; } $page_template = null; if (!empty($content_struct['wp_page_template']) && 'page' == $post_type) { $page_template = $content_struct['wp_page_template']; } $post_author = $postdata['post_author']; // Only set the post_author if one is set. if (isset($content_struct['wp_author_id']) && $user->ID != $content_struct['wp_author_id']) { switch ($post_type) { case 'post': if (!current_user_can('edit_others_posts')) { return new IXR_Error(401, __('You are not allowed to change the post author as this user.')); } break; case 'page': if (!current_user_can('edit_others_pages')) { return new IXR_Error(401, __('You are not allowed to change the page author as this user.')); } break; default: return new IXR_Error(401, __('Invalid post type')); break; } $post_author = $content_struct['wp_author_id']; } if (isset($content_struct['mt_allow_comments'])) { if (!is_numeric($content_struct['mt_allow_comments'])) { switch ($content_struct['mt_allow_comments']) { case 'closed': $comment_status = 'closed'; break; case 'open': $comment_status = 'open'; break; default: $comment_status = get_option('default_comment_status'); break; } } else { switch ((int) $content_struct['mt_allow_comments']) { case 0: case 2: $comment_status = 'closed'; break; case 1: $comment_status = 'open'; break; default: $comment_status = get_option('default_comment_status'); break; } } } if (isset($content_struct['mt_allow_pings'])) { if (!is_numeric($content_struct['mt_allow_pings'])) { switch ($content_struct['mt_allow_pings']) { case 'closed': $ping_status = 'closed'; break; case 'open': $ping_status = 'open'; break; default: $ping_status = get_option('default_ping_status'); break; } } else { switch ((int) $content_struct["mt_allow_pings"]) { case 0: $ping_status = 'closed'; break; case 1: $ping_status = 'open'; break; default: $ping_status = get_option('default_ping_status'); break; } } } if (isset($content_struct['title'])) { $post_title = $content_struct['title']; } if (isset($content_struct['description'])) { $post_content = $content_struct['description']; } $post_category = array(); if (isset($content_struct['categories'])) { $catnames = $content_struct['categories']; if (is_array($catnames)) { foreach ($catnames as $cat) { $post_category[] = get_cat_ID($cat); } } } if (isset($content_struct['mt_excerpt'])) { $post_excerpt = $content_struct['mt_excerpt']; } $post_more = isset($content_struct['mt_text_more']) ? $content_struct['mt_text_more'] : null; $post_status = $publish ? 'publish' : 'draft'; if (isset($content_struct["{$post_type}_status"])) { switch ($content_struct["{$post_type}_status"]) { case 'draft': case 'pending': case 'private': case 'publish': $post_status = $content_struct["{$post_type}_status"]; break; default: $post_status = $publish ? 'publish' : 'draft'; break; } } $tags_input = isset($content_struct['mt_keywords']) ? $content_struct['mt_keywords'] : null; if ('publish' == $post_status) { if ('page' == $post_type && !current_user_can('publish_pages')) { return new IXR_Error(401, __('Sorry, you do not have the right to publish this page.')); } else { if (!current_user_can('publish_posts')) { return new IXR_Error(401, __('Sorry, you do not have the right to publish this post.')); } } } if ($post_more) { $post_content = $post_content . "<!--more-->" . $post_more; } $to_ping = null; if (isset($content_struct['mt_tb_ping_urls'])) { $to_ping = $content_struct['mt_tb_ping_urls']; if (is_array($to_ping)) { $to_ping = implode(' ', $to_ping); } } // Do some timestamp voodoo if (!empty($content_struct['date_created_gmt'])) { // We know this is supposed to be GMT, so we're going to slap that Z on there by force $dateCreated = rtrim($content_struct['date_created_gmt']->getIso(), 'Z') . 'Z'; } elseif (!empty($content_struct['dateCreated'])) { $dateCreated = $content_struct['dateCreated']->getIso(); } if (!empty($dateCreated)) { $post_date = get_date_from_gmt(iso8601_to_datetime($dateCreated)); $post_date_gmt = iso8601_to_datetime($dateCreated, 'GMT'); } else { $post_date = $postdata['post_date']; $post_date_gmt = $postdata['post_date_gmt']; } // We've got all the data -- post it: $newpost = compact('ID', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'comment_status', 'ping_status', 'post_date', 'post_date_gmt', 'to_ping', 'post_name', 'post_password', 'post_parent', 'menu_order', 'post_author', 'tags_input', 'page_template'); $result = wp_update_post($newpost, true); if (is_wp_error($result)) { return new IXR_Error(500, $result->get_error_message()); } if (!$result) { return new IXR_Error(500, __('Sorry, your entry could not be edited. Something wrong happened.')); } // Only posts can be sticky if ($post_type == 'post' && isset($content_struct['sticky'])) { if ($content_struct['sticky'] == true) { stick_post($post_ID); } elseif ($content_struct['sticky'] == false) { unstick_post($post_ID); } } if (isset($content_struct['custom_fields'])) { $this->set_custom_fields($post_ID, $content_struct['custom_fields']); } if (isset($content_struct['wp_post_thumbnail'])) { // empty value deletes, non-empty value adds/updates if (empty($content_struct['wp_post_thumbnail'])) { delete_post_thumbnail($post_ID); } else { if (set_post_thumbnail($post_ID, $content_struct['wp_post_thumbnail']) === false) { return new IXR_Error(404, __('Invalid attachment ID.')); } } unset($content_struct['wp_post_thumbnail']); } // Handle enclosures $thisEnclosure = isset($content_struct['enclosure']) ? $content_struct['enclosure'] : null; $this->add_enclosure_if_new($post_ID, $thisEnclosure); $this->attach_uploads($ID, $post_content); // Handle post formats if assigned, validation is handled // earlier in this function if (isset($content_struct['wp_post_format'])) { set_post_format($post_ID, $content_struct['wp_post_format']); } /** * Fires after a post has been successfully updated via the XML-RPC MovableType API. * * @since 3.4.0 * * @param int $post_ID ID of the updated post. * @param array $args An array of arguments to update the post. */ do_action('xmlrpc_call_success_mw_editPost', $post_ID, $args); return true; }
public static function xmlrpc_delete_thumbnail($args) { global $wp_xmlrpc_server; $wp_xmlrpc_server->escape($args); $blog_id = (int) $args[0]; $username = $args[1]; $password = $args[2]; $post_ID = (int) $args[3]; $meta_key = !empty($args[4]) ? sanitize_text_field($args[4]) : '_thumbnail_id'; if (!($user = $wp_xmlrpc_server->login($username, $password))) { return $wp_xmlrpc_server->error; } if (!current_user_can('edit_post', $post_ID)) { return new IXR_Error(401, __('Sorry, you are not allowed to post on this site.')); } if ('_thumbnail_id' == $meta_key) { $result = delete_post_thumbnail($post_ID); } else { $result = delete_post_meta($post_ID, $meta_key); } if (!$result) { return new IXR_Error(403, __('Could not remove post thumbnail.')); } return true; }
case 'restore': $msg = wp_restore_image($attachment_id); break; } wp_image_editor($attachment_id, $msg); die; break; case 'set-post-thumbnail': $post_ID = intval($_POST['post_id']); if (!current_user_can('edit_post', $post_ID)) { die('-1'); } $thumbnail_id = intval($_POST['thumbnail_id']); check_ajax_referer("set_post_thumbnail-{$post_ID}"); if ($thumbnail_id == '-1') { if (delete_post_thumbnail($post_ID)) { die(_wp_post_thumbnail_html()); } else { die('0'); } } if (set_post_thumbnail($post_ID, $thumbnail_id)) { die(_wp_post_thumbnail_html($thumbnail_id)); } die('0'); break; case 'date_format': die(date_i18n(sanitize_option('date_format', $_POST['date']))); break; case 'time_format': die(date_i18n(sanitize_option('time_format', $_POST['date'])));
function ajax_thumbnail() { check_ajax_referer('update-post_' . $_POST['post_ID']); if (!current_user_can('edit_post', $_POST['post_ID'])) { wp_send_json_error(array('message' => __('You are not allowed to edit this item.'))); } if ($_POST['thumbnail_ID'] === '-1') { if (delete_post_thumbnail($_POST['post_ID'])) { wp_send_json_success(''); } } else { if (set_post_thumbnail($_POST['post_ID'], $_POST['thumbnail_ID'])) { wp_send_json_success(get_the_post_thumbnail($_POST['post_ID'], $_POST['size'])); } } die; }
/** * Duplicate Featured Image * * When a product is duplicated, the featured image ID is copied when the post * meta is duplicated. * * When the featured image is attached to the duplicated product, if the image * is duplicated the featured image ID is updated to the duplicated image ID * otherwise the featured image ID is removed. * * If the featured image is not attached to the product the featured image ID * remains the same as the original product. * * This function will remove the featured image if the image is not attached to * the duplicated product and offers the opportunity to change the featured image * of the duplicated product via the 'wpsc_duplicate_product_thumbnail' filter. * * @since 4.0 */ private function duplicate_product_thumbnail() { $new_post_id = $this->get_new_post_id(); if ($new_post_id) { $thumbnail_id = $original_thumbnail_id = has_post_thumbnail($new_post_id) ? get_post_thumbnail_id($new_post_id) : 0; // If not duplicating product attachments, ensure featured image ID is zero if (!apply_filters('wpsc_duplicate_product_attachment', true, $thumbnail_id, $new_post_id)) { $thumbnail_id = 0; } // Filter featured product image ID $thumbnail_id = absint(apply_filters('wpsc_duplicate_product_thumbnail', $thumbnail_id, $original_thumbnail_id, $this->get_post_id(), $new_post_id)); if ($thumbnail_id > 0) { set_post_thumbnail($new_post_id, $thumbnail_id); } else { delete_post_thumbnail($new_post_id); } } }
/** * Unified save child function. * * @param int $parent_id * @param int $child_id * @param array $save_fields * @return bool|WP_Error */ function save_child($parent_id, $child_id, $save_fields = array()) { $parent = get_post(intval($parent_id)); $child = get_post(intval($child_id)); $post_data = array(); if (empty($parent) || empty($child)) { return new WP_Error('wpcf-relationship-save-child', 'no parent/child post'); } // Save relationship update_post_meta($child->ID, '_wpcf_belongs_' . $parent->post_type . '_id', $parent->ID); // Check if added via AJAX $check = get_post_meta($child->ID, '_wpcf_relationship_new', true); $new = !empty($check); delete_post_meta($child->ID, '_wpcf_relationship_new'); // Set post data $post_data['ID'] = $child->ID; // Title needs to be checked if submitted at all if (!isset($save_fields['_wp_title'])) { // If not submitted that means it is not offered to be edited if (!empty($child->post_title)) { $post_title = $child->post_title; } else { // DO NOT LET IT BE EMPTY $post_title = $child->post_type . ' ' . $child->ID; } } else { $post_title = $save_fields['_wp_title']; } $post_data['post_title'] = $post_title; $post_data['post_content'] = isset($save_fields['_wp_body']) ? $save_fields['_wp_body'] : $child->post_content; $post_data['post_excerpt'] = isset($save_fields['_wp_excerpt']) ? $save_fields['_wp_excerpt'] : $child->post_excerpt; $post_data['post_type'] = $child->post_type; // Check post status - if new, convert to 'publish' else keep remaining if ($new) { $post_data['post_status'] = 'publish'; } else { $post_data['post_status'] = get_post_status($child->ID); } /* * * * * * * * UPDATE POST */ $cf = new WPCF_Field(); if (isset($_POST['wpcf_post_relationship'][$parent_id]) && isset($_POST['wpcf_post_relationship'][$parent_id][$child_id])) { $_POST['wpcf'] = array(); foreach ($_POST['wpcf_post_relationship'][$parent_id][$child_id] as $slug => $value) { $_POST['wpcf'][$cf->__get_slug_no_prefix($slug)] = $value; $_POST['wpcf'][$slug] = $value; } } unset($cf); /** * avoid send data to children */ if (isset($_POST['post_ID'])) { $temp_post_data = $_POST; $_POST = array(); foreach (array('wpcf_post_relationship', 'post_ID', '_wptoolset_checkbox', 'wpcf', '_wpnonce') as $key) { if (isset($temp_post_data[$key])) { $_POST[$key] = $temp_post_data[$key]; } } } // Workaround for types-876, see wpcf_admin_post_save_post_hook(). add_filter('types_updating_child_post', '__return_true'); $updated_id = wp_update_post($post_data); remove_filter('types_updating_child_post', '__return_true'); if (isset($temp_post_data)) { $_POST = $temp_post_data; unset($temp_post_data); } if (empty($updated_id)) { return new WP_Error('relationship-update-post-failed', 'Updating post failed'); } // Save parents if (!empty($save_fields['parents'])) { foreach ($save_fields['parents'] as $parent_post_type => $parent_post_id) { update_post_meta($child->ID, '_wpcf_belongs_' . $parent_post_type . '_id', $parent_post_id); } } // Update taxonomies if (!empty($save_fields['taxonomies']) && is_array($save_fields['taxonomies'])) { $_save_data = array(); foreach ($save_fields['taxonomies'] as $taxonomy => $t) { if (!is_taxonomy_hierarchical($taxonomy)) { $_save_data[$taxonomy] = strval($t); continue; } foreach ($t as $term_id) { if ($term_id != '-1') { $term = get_term($term_id, $taxonomy); if (empty($term)) { continue; } $_save_data[$taxonomy][] = $term_id; } } } wp_delete_object_term_relationships($child->ID, array_keys($save_fields['taxonomies'])); foreach ($_save_data as $_taxonomy => $_terms) { wp_set_post_terms($child->ID, $_terms, $_taxonomy, $append = false); } } // Unset non-types unset($save_fields['_wp_title'], $save_fields['_wp_body'], $save_fields['parents'], $save_fields['taxonomies']); /** * add filter to remove field name from error message */ /** This filter is toolset-common/toolset-forms/classes/class.validation.php */ add_filter('toolset_common_validation_add_field_name_to_error', '__return_false', 1234, 1); /** * UPDATE Loop over fields */ foreach ($save_fields as $slug => $value) { if (defined('WPTOOLSET_FORMS_VERSION')) { // Get field by slug $field = wpcf_fields_get_field_by_slug(str_replace(WPCF_META_PREFIX, '', $slug)); if (empty($field)) { continue; } // Set config $config = wptoolset_form_filter_types_field($field, $child->ID); // Check if valid $valid = wptoolset_form_validate_field('post', $config, $value); if (is_wp_error($valid)) { $errors = $valid->get_error_data(); $msg = sprintf(__('Child post "%s" field "%s" not updated:', 'wpcf'), $child->post_title, $field['name']); wpcf_admin_message_store($msg . ' ' . implode(', ', $errors), 'error'); continue; } } $this->cf->set($child, $field); $this->cf->context = 'post_relationship'; $this->cf->save($value); } /** * save feature image */ if (isset($save_fields['_wp_featured_image'])) { if ($save_fields['_wp_featured_image']) { set_post_thumbnail($updated_id, $save_fields['_wp_featured_image']); } else { delete_post_thumbnail($updated_id); } } remove_filter('toolset_common_validation_add_field_name_to_error', '__return_false', 1234, 1); do_action('wpcf_relationship_save_child', $child, $parent); clean_post_cache($parent->ID); clean_post_cache($child->ID); // Added because of caching meta 1.5.4 wp_cache_flush(); return true; }
public function wa_delete_post_thumbnail($post_id = false) { $is_ajax = false; if (!$post_id) { $post_id = $_POST['post_id']; $is_ajax = true; } $return = delete_post_thumbnail($post_id); if ($is_ajax) { wp_send_json(array('success' => $return)); } else { return $return; } }
/** * Process the post and Validate all. Saves or update the post and post meta. * * @package BuddyForms * @since 0.3 beta */ function buddyforms_process_post($args = array()) { global $current_user, $buddyforms; do_action('buddyforms_process_post_start', $args); $hasError = false; $info_message = ''; get_currentuserinfo(); extract(shortcode_atts(array('post_type' => '', 'the_post' => 0, 'post_id' => 0, 'post_parent' => 0, 'revision_id' => false, 'form_slug' => 0, 'redirect_to' => $_SERVER['REQUEST_URI']), $args)); if (isset($_POST['bf_post_type'])) { $post_type = $_POST['bf_post_type']; } if ($post_id != 0) { if (!empty($revision_id)) { $the_post = get_post($revision_id); } else { $post_id = apply_filters('bf_create_edit_form_post_id', $post_id); $the_post = get_post($post_id); } // Check if the user is author of the post $user_can_edit = false; if ($the_post->post_author == $current_user->ID) { $user_can_edit = true; } $user_can_edit = apply_filters('buddyforms_user_can_edit', $user_can_edit); if ($user_can_edit == false) { $args = array('hasError' => true, 'error_message' => __('You are not allowed to edit this post. What are you doing here?', 'buddyforms')); return $args; } } // check if the user has the roles and capabilities $user_can_edit = false; if ($post_id == 0 && current_user_can('buddyforms_' . $form_slug . '_create')) { $user_can_edit = true; } elseif ($post_id != 0 && current_user_can('buddyforms_' . $form_slug . '_edit')) { $user_can_edit = true; } $user_can_edit = apply_filters('buddyforms_user_can_edit', $user_can_edit); if ($user_can_edit == false) { $args = array('hasError' => true, 'error_message' => __('You do not have the required user role to use this form', 'buddyforms')); return $args; } // If post_id == 0 a new post is created if ($post_id == 0) { require_once ABSPATH . 'wp-admin/includes/admin.php'; $the_post = get_default_post_to_edit($post_type); } if (isset($buddyforms[$form_slug]['form_fields'])) { $customfields = $buddyforms[$form_slug]['form_fields']; } $comment_status = $buddyforms[$form_slug]['comment_status']; if (isset($_POST['comment_status'])) { $comment_status = $_POST['comment_status']; } $post_excerpt = ''; if (isset($_POST['post_excerpt'])) { $post_excerpt = $_POST['post_excerpt']; } $action = 'save'; $post_status = $buddyforms[$form_slug]['status']; if ($post_id != 0) { $action = 'update'; $post_status = get_post_status($post_id); } if (isset($_POST['status'])) { $post_status = $_POST['status']; } $args = array('post_id' => $post_id, 'action' => $action, 'form_slug' => $form_slug, 'post_type' => $post_type, 'post_excerpt' => $post_excerpt, 'post_author' => $current_user->ID, 'post_status' => $post_status, 'post_parent' => $post_parent, 'comment_status' => $comment_status); extract($args = buddyforms_update_post($args)); /* * Check if the update or insert was successful */ if (!is_wp_error($post_id)) { // Check if the post has post meta / custom fields if (isset($customfields)) { $customfields = bf_update_post_meta($post_id, $customfields); } if (isset($_POST['featured_image'])) { set_post_thumbnail($post_id, $_POST['featured_image']); } else { delete_post_thumbnail($post_id); } // Save the Form slug as post meta update_post_meta($post_id, "_bf_form_slug", $form_slug); } else { $hasError = true; $error_message = $post_id->get_error_message(); } // Display the message if (!$hasError) { if (isset($_POST['post_id']) && !empty($_POST['post_id'])) { $info_message .= __('The ', 'buddyforms') . $buddyforms[$form_slug]['singular_name'] . __(' 1has been successfully updated ', 'buddyforms'); $form_notice = '<div class="info alert">' . $info_message . '</div>'; } else { $info_message .= __('The ', 'buddyforms') . $buddyforms[$form_slug]['singular_name'] . __(' has been successfully created ', 'buddyforms'); $form_notice = '<div class="info alert">' . $info_message . '</div>'; } } else { if (empty($error_message)) { $error_message = __('Error! There was a problem submitting the post ;-(', 'buddyforms'); } $form_notice = '<div class="error alert">' . $error_message . '</div>'; if (!empty($fileError)) { $form_notice = '<div class="error alert">' . $fileError . '</div>'; } } do_action('buddyforms_after_save_post', $post_id); $args2 = array('hasError' => $hasError, 'form_notice' => $form_notice, 'customfields' => $customfields, 'redirect_to' => $redirect_to, 'form_slug' => $form_slug); $args = array_merge($args, $args2); do_action('buddyforms_process_post_end', $args); return $args; }
protected function parse_and_set_featured_image($post_id, $delete_featured_image, $featured_image) { if ($delete_featured_image) { delete_post_thumbnail($post_id); return; } $featured_image = (string) $featured_image; // if we got a post ID, we can just set it as the thumbnail if (ctype_digit($featured_image) && 'attachment' == get_post_type($featured_image)) { set_post_thumbnail($post_id, $featured_image); return $featured_image; } $featured_image_id = $this->handle_media_sideload($featured_image, $post_id); if (empty($featured_image_id) || !is_int($featured_image_id)) { return false; } set_post_thumbnail($post_id, $featured_image_id); return $featured_image_id; }
/** * @access private * * @uses current_user_can() Checks user capabilities given string * @uses delete_post_thumbnail() Deletes post thumbnail given thumbnail id * @uses set_post_thumbnail() Sets post thumbnail given post_id and thumbnail_id * @uses wpsc_the_product_thumbnail() Returns URL to the product thumbnail * * @return array $response Includes the thumbnail URL and success bool value */ function _wpsc_ajax_set_variation_product_thumbnail() { $response = array('success' => false); $post_ID = intval($_POST['post_id']); if (current_user_can('edit_post', $post_ID)) { $thumbnail_id = intval($_POST['thumbnail_id']); if ($thumbnail_id == '-1') { delete_post_thumbnail($post_ID); } set_post_thumbnail($post_ID, $thumbnail_id); $thumbnail = wpsc_the_product_thumbnail(50, 50, $post_ID, ''); if (!$thumbnail) { $thumbnail = WPSC_CORE_IMAGES_URL . '/no-image-uploaded.gif'; } $response['src'] = $thumbnail; $response['success'] = true; } echo json_encode($response); exit; }
/** * Ajax handler for setting the featured image. * * @since 3.1.0 */ function wp_ajax_set_post_thumbnail() { $json = !empty($_REQUEST['json']); // New-style request $post_ID = intval($_POST['post_id']); if (!current_user_can('edit_post', $post_ID)) { wp_die(-1); } $thumbnail_id = intval($_POST['thumbnail_id']); if ($json) { check_ajax_referer("update-post_{$post_ID}"); } else { check_ajax_referer("set_post_thumbnail-{$post_ID}"); } if ($thumbnail_id == '-1') { if (delete_post_thumbnail($post_ID)) { $return = _wp_post_thumbnail_html(null, $post_ID); $json ? wp_send_json_success($return) : wp_die($return); } else { wp_die(0); } } if (set_post_thumbnail($post_ID, $thumbnail_id)) { $return = _wp_post_thumbnail_html($thumbnail_id, $post_ID); $json ? wp_send_json_success($return) : wp_die($return); } wp_die(0); }
function wpdm_save_package_data_frontend($post) { global $wpdb, $current_user; get_currentuserinfo(); if (!is_user_logged_in() || !isset($_POST['file']) || !isset($_POST['act']) || !in_array($_POST['act'], array('_ap_wpdm', '_ep_wpdm'))) { return; } $cdata = get_post_custom($post); foreach ($cdata as $k => $v) { $tk = str_replace("__wpdm_", "", $k); if (!isset($_POST['file'][$tk]) && $tk != $k) { delete_post_meta($post, $k); } } if (isset($_POST['file']['preview'])) { $preview = $_POST['file']['preview']; $attachment_id = $wpdb->get_var($wpdb->prepare("SELECT ID FROM {$wpdb->posts} WHERE guid='%s';", $preview)); set_post_thumbnail($post, $attachment_id); unset($_POST['file']['preview']); } else { delete_post_thumbnail($post); } foreach ($_POST['file'] as $meta_key => $meta_value) { $key_name = "__wpdm_" . $meta_key; update_post_meta($post, $key_name, $meta_value); } update_post_meta($post, '__wpdm_masterkey', uniqid()); if (isset($_POST['reset_key']) && $_POST['reset_key'] == 1) { update_post_meta($post, '__wpdm_masterkey', uniqid()); } //do_action('after_update_package',$post, $_POST['file']); }
/** * Save product images * * @since 2.2 * @param array $images * @param int $id */ protected function save_product_images($id, $images) { if (is_array($images)) { $gallery = array(); foreach ($images as $image) { if (isset($image['position']) && $image['position'] == 0) { $attachment_id = isset($image['id']) ? absint($image['id']) : 0; if (0 === $attachment_id && isset($image['src'])) { $upload = $this->upload_product_image(esc_url_raw($image['src'])); if (is_wp_error($upload)) { throw new WC_API_Exception('woocommerce_api_cannot_upload_product_image', $upload->get_error_message(), 400); } $attachment_id = $this->set_product_image_as_attachment($upload, $id); } set_post_thumbnail($id, $attachment_id); } else { $attachment_id = isset($image['id']) ? absint($image['id']) : 0; if (0 === $attachment_id && isset($image['src'])) { $upload = $this->upload_product_image(esc_url_raw($image['src'])); if (is_wp_error($upload)) { throw new WC_API_Exception('woocommerce_api_cannot_upload_product_image', $upload->get_error_message(), 400); } $gallery[] = $this->set_product_image_as_attachment($upload, $id); } else { $gallery[] = $attachment_id; } } // Set the image alt if present. if (!empty($image['alt'])) { update_post_meta($attachment_id, '_wp_attachment_image_alt', wc_clean($image['alt'])); } // Set the image title if present. if (!empty($image['title'])) { wp_update_post(array('ID' => $attachment_id, 'post_title' => $image['title'])); } } if (!empty($gallery)) { update_post_meta($id, '_product_image_gallery', implode(',', $gallery)); } } else { delete_post_thumbnail($id); update_post_meta($id, '_product_image_gallery', ''); } }
function fifu_save_properties($post_id) { if (isset($_POST['fifu_input_url'])) { update_post_meta($post_id, 'fifu_image_url', esc_url($_POST['fifu_input_url'])); if (get_option('fifu_attachment_id') && !get_post_thumbnail_id($post_id) && esc_url($_POST['fifu_input_url'])) { set_post_thumbnail($post_id, get_option('fifu_attachment_id')); } } if (isset($_POST['fifu_input_alt'])) { update_post_meta($post_id, 'fifu_image_alt', wp_strip_all_tags($_POST['fifu_input_alt'])); } if (get_post_type(get_the_ID()) == 'product') { $count = 10; for ($i = 0; $i < 10; $i++) { if (isset($_POST['fifu_input_url_' . $i]) && isset($_POST['fifu_input_alt_' . $i])) { if ($_POST['fifu_input_url_' . $i] != '' && $_POST['fifu_input_alt_' . $i] != '') { update_post_meta($post_id, 'fifu_image_url_' . $i, esc_url($_POST['fifu_input_url_' . $i])); update_post_meta($post_id, 'fifu_image_alt_' . $i, wp_strip_all_tags($_POST['fifu_input_alt_' . $i])); if (get_option('fifu_attachment_id') && !get_post_thumbnail_id($post_id) && esc_url($_POST['fifu_input_url_' . $i])) { set_post_thumbnail($post_id, get_option('fifu_attachment_id')); } } else { delete_post_meta($post_id, 'fifu_image_url_' . $i); delete_post_meta($post_id, 'fifu_image_alt_' . $i); $count--; } } } if ($count == 0 && (isset($_POST['fifu_input_url']) && !esc_url($_POST['fifu_input_url'])) && get_post_thumbnail_id($post_id) == get_option('fifu_attachment_id')) { delete_post_thumbnail($post_id); } } else { if (isset($_POST['fifu_input_url']) && !esc_url($_POST['fifu_input_url']) && get_post_thumbnail_id($post_id) == get_option('fifu_attachment_id')) { delete_post_thumbnail($post_id); } } }