Ejemplo n.º 1
0
/**
 * Function and action for duplicating products,
 * Refactored for 3.8
 * Purposely not duplicating stick post status (logically, products are most often duplicated because they share many attributes, where products are generally 'featured' uniquely.)
 */
function wpsc_duplicate_product()
{
    // Get the original post
    $id = absint($_GET['product']);
    $post = get_post($id);
    // Copy the post and insert it
    if (isset($post) && $post != null) {
        $new_id = wpsc_duplicate_product_process($post);
        $duplicated = true;
        $sendback = wp_get_referer();
        $sendback = add_query_arg('duplicated', (int) $duplicated, $sendback);
        wp_redirect($sendback);
        exit;
    } else {
        wp_die(__('Sorry, for some reason, we couldn\'t duplicate this product because it could not be found in the database, check there for this ID: ', 'wpsc') . $id);
    }
}
Ejemplo n.º 2
0
/**
 * Duplicates children product and children meta
 *
 * @uses get_posts()                          Gets an array of posts given array of arguments
 * @uses wpsc_duplicate_product_process()     Duplicates product
 *
 * @param   int     $old_parent_id  req     Post id for old parent
 * @param   int     $new_parenc_id  req     Post id for the new parent
 */
function wpsc_duplicate_children($old_parent_id, $new_parent_id)
{
    //Get children products and duplicate them
    $child_posts = get_posts(array('post_parent' => $old_parent_id, 'post_type' => 'any', 'post_status' => 'any', 'numberposts' => -1, 'order' => 'ASC'));
    foreach ($child_posts as $child_post) {
        wpsc_duplicate_product_process($child_post, $new_parent_id);
    }
}
Ejemplo n.º 3
0
 function duplicate_product($strtCnt, $dupCnt, $data, $msg, $count, $per, $perval)
 {
     $post_data = array();
     for ($i = $strtCnt; $i < $dupCnt; $i++) {
         $post_id = $data[$i];
         $post = get_post($post_id);
         if ($post->post_parent == 0) {
             $post_data[] = wpsc_duplicate_product_process($post);
         } else {
             $post_data[] = $data[$i];
         }
     }
     $duplicate_count = count($post_data);
     if ($duplicate_count == $count) {
         $result = true;
     } else {
         $result = false;
     }
     if ($result == true) {
         $encoded['msg'] = $msg;
         $encoded['dupCnt'] = $dupCnt;
         $encoded['nxtreq'] = $_POST['part'];
         $encoded['per'] = $per;
         $encoded['val'] = $perval;
     } elseif ($result == false) {
         $encoded['msg'] = $activeModule . __('s were not duplicated', $sm_text_domain);
     }
     echo json_encode($encoded);
     exit;
 }
Ejemplo n.º 4
0
/**
 * Duplicates children product and children meta
 *
 * @uses get_posts()                          Gets an array of posts given array of arguments
 * @uses wpsc_duplicate_product_process()     Duplicates product
 *
 * @param   int     $old_parent_id  req     Post id for old parent
 * @param   int     $new_parenc_id  req     Post id for the new parent
 */
function wpsc_duplicate_children($old_parent_id, $new_parent_id)
{
    // Get children products and duplicate them
    $child_posts = get_posts(array('post_parent' => $old_parent_id, 'post_type' => 'any', 'post_status' => 'any', 'numberposts' => -1, 'order' => 'ASC'));
    foreach ($child_posts as $child_post) {
        // Duplicate product images and child posts
        if ('attachment' == get_post_type($child_post)) {
            wpsc_duplicate_product_image_process($child_post, $new_parent_id);
        } else {
            wpsc_duplicate_product_process($child_post, $new_parent_id);
        }
        do_action('wpsc_duplicate_product_child', $child_post, $new_parent_id);
    }
}