WordPress.org

Support

Support » Plugins and Hacks » Hacks » Product Variations Not Working

Product Variations Not Working

  • timothyky
    Participant

    @timothyky

    I’m trying to customize a page where it reads an array of attributes from the _GET function and create the required pages and postmeta instead of having user entering the CMS.

    I can see the fields are entered in the database but when it comes to viewing it in the variations it does not show anything nor does the single product page.

    Please help, I just need this final bit to complete my assignment.

    Many thanks in advance!

    $data['attributes'] = $_GET['att'];
    $data['page_id'] = $_GET['pageid'];
    $data['pa'] = $_GET['pa'];
    wp_set_object_terms( intval($data['page_id']), $data['attributes'], $data['pa'] );
    $thedata = Array('pa_size'=>Array(
    	'name'=>$data['pa'],
    	'value'=> $data['attributes'],
    	'is_visible' => '1',
    	'is_variation' => '1',
    	'is_taxonomy' => '1'
    	));
    update_post_meta( $data['page_id'],'_product_attributes',$thedata);
    $counter = 0;
    $last = $wpdb->get_row("SHOW TABLE STATUS LIKE 'wp_posts'");
    $lastid = $last->Auto_increment;
    
    foreach($data['attributes'] as $item)
    {
    
    	$comment_status = "open";
    	$ping_status = "open";
    	if($counter == 0)
    	{
    		$post_name = "product-".$data['page_id']."-variation";
    		$guid = "http://www.hkstylish.com/?product_variation=product-".$data['page_id']."-variation";
    	}
    	else
    	{
    		$temp_counter = $counter + 1;
    		$post_name = "product-".$data['page_id']."-variation-".$temp_counter;
    		$guid = "http://www.hkstylish.com/?product_variation=product-".$data['page_id']."-variation-".$temp_counter;
    	}
    	$post_parent = $data['page_id'];
    	$menu_order = $counter;
    	$post_type = "product_variation";
    	$get_post_name = $wpdb->get_results('SELECT * FROM <code>wp_posts</code> WHERE <code>ID</code> = "'.$data['page_id'].'"');
    	$post_name1 = $get_post_name[0]->post_title;
    	$variation = array(
    		'post_title' 	=> "Variation #".$lastid." of ".$post_name1,
    		'post_content' 	=> '',
    		'post_status' 	=> "published",
    		'post_author' 	=> get_current_user_id(),
    		'post_parent' 	=> $data['page_id'],
    		'post_type' 	=> 'product_variation',
    		'menu_order' 	=> $counter,
    		'post_name' 	=> $post_name,
    		'guid'			=> $guid
    	);
    	$variation_id = wp_insert_post( $variation );
    	do_action( 'woocommerce_create_product_variation', $variation_id );
    	update_post_meta( $variation_id, '_stock', $_GET['stock'][$counter] );
    	update_post_meta( $variation_id, '_sku', "" );
    	update_post_meta( $variation_id, '_weight', "" );
    	update_post_meta( $variation_id, 'length', "" );
    	update_post_meta( $variation_id, '_width', "" );
    	update_post_meta( $variation_id, '_height', "" );
    	update_post_meta( $variation_id, '_stock', $_GET['stock'][$counter] );
    	update_post_meta( $variation_id, '_thumbnail_id', 0 );
    	update_post_meta( $variation_id, '_virtual', "no" );
    	update_post_meta( $variation_id, '_downloadable', "no" );
    	update_post_meta( $variation_id, '_regular_price', 20 );
    	update_post_meta( $variation_id, '_sale_price_dates_from', "" );
    	update_post_meta( $variation_id, '_sale_price_dates_to', "" );
    	update_post_meta( $variation_id, '_price', 20 );
    	update_post_meta( $variation_id, '_tax_class', "" );
    	update_post_meta( $variation_id, '_download_limit', "" );
    	update_post_meta( $variation_id, '_download_expiry', "" );
    	update_post_meta( $variation_id, '_file_paths', "" );
    	do_action( 'woocommerce_save_product_variation', $variation_id );
    	$counter++;
    	$lastid++;
    }

    [No bumping. If it’s that urgent, consider hiring someone.]

  • The topic ‘Product Variations Not Working’ is closed to new replies.