LLMS_Lesson_Handler::duplicate( $post_id )


Source Source

File: includes/class.llms.lesson.handler.php

	public static function duplicate( $post_id ) {

		// Make sure we have a post id and it returns a post.
		if ( ! isset( $post_id ) ) {
			return false;
		}

		$post_obj = get_post( $post_id );
		// Last check.
		if ( ! isset( $post_obj ) || null == $post_obj ) {
			return false;
		}

		// No going back now.

		// Create duplicate post.
		$args = array(
			'comment_status' => $post_obj->comment_status,
			'ping_status'    => $post_obj->ping_status,
			'post_author'    => $post_obj->post_author,
			'post_content'   => $post_obj->post_content,
			'post_excerpt'   => $post_obj->post_excerpt,
			'post_name'      => $post_obj->post_name,
			'post_parent'    => $post_obj->post_parent,
			'post_status'    => 'publish',
			'post_title'     => $post_obj->post_title,
			'post_type'      => $post_obj->post_type,
			'to_ping'        => $post_obj->to_ping,
			'menu_order'     => $post_obj->menu_order,
			'post_password'  => $post_obj->post_password,
		);

		// Create the duplicate post.
		$new_post_id = wp_insert_post( $args );

		if ( $new_post_id ) {

			// Get all current post terms and set them to the new post.
			$taxonomies = get_object_taxonomies( $post_obj->post_type );
			foreach ( $taxonomies as $taxonomy ) {
				$post_terms = wp_get_object_terms(
					$post_obj->ID,
					$taxonomy,
					array(
						'fields' => 'slugs',
					)
				);
				wp_set_object_terms( $new_post_id, $post_terms, $taxonomy, false );
			}

			// Duplicate meta.
			$insert_meta = self::duplicate_meta( $post_id, $new_post_id );

		}

		return $new_post_id;

	}


Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.