create_grouped_product() 공개 정적인 메소드

Create grouped product.
부터: 2.7.0
public static create_grouped_product ( ) : WC_Product_Grouped
리턴 WC_Product_Grouped
예제 #1
0
 /**
  * Test getting product type.
  *
  * @since 2.7.0
  */
 function test_get_product_type()
 {
     $simple = WC_Helper_Product::create_simple_product();
     $external = WC_Helper_Product::create_external_product();
     $grouped = WC_Helper_Product::create_grouped_product();
     $variable = WC_Helper_Product::create_variation_product();
     $children = $variable->get_children();
     $child_id = $children[0];
     $this->assertEquals('simple', WC()->product_factory->get_product_type($simple->get_id()));
     $this->assertEquals('external', WC()->product_factory->get_product_type($external->get_id()));
     $this->assertEquals('grouped', WC()->product_factory->get_product_type($grouped->get_id()));
     $this->assertEquals('variable', WC()->product_factory->get_product_type($variable->get_id()));
     $this->assertEquals('variation', WC()->product_factory->get_product_type($child_id));
     $simple->delete(true);
     $external->delete(true);
     $grouped->delete(true);
     $variable->delete(true);
 }
예제 #2
0
 /**
  * Test updating an grouped product.
  *
  * @since 2.7.0
  */
 function test_grouped_product_update()
 {
     $product = WC_Helper_Product::create_grouped_product();
     $simple_product = WC_Helper_Product::create_simple_product();
     $this->assertEquals('Dummy Grouped Product', $product->get_name());
     $this->assertEquals(2, count($product->get_children()));
     $children = $product->get_children();
     $children[] = $simple_product->get_id();
     $product->set_children($children);
     $product->set_name('Dummy Grouped Product 2');
     $product->save();
     // Reread from database
     $product = new WC_Product_Grouped($product->get_id());
     $this->assertEquals(3, count($product->get_children()));
     $this->assertEquals('Dummy Grouped Product 2', $product->get_name());
 }
예제 #3
0
 /**
  * Tests wc_get_products().
  *
  * @since 2.7.0
  */
 public function test_wc_get_products()
 {
     $test_cat_1 = wp_insert_term('Testing 1', 'product_cat');
     $test_tag_1 = wp_insert_term('Tag 1', 'product_tag');
     $test_tag_2 = wp_insert_term('Tag 2', 'product_tag');
     $term_cat_1 = get_term_by('id', $test_cat_1['term_id'], 'product_cat');
     $term_tag_1 = get_term_by('id', $test_tag_1['term_id'], 'product_tag');
     $term_tag_2 = get_term_by('id', $test_tag_2['term_id'], 'product_tag');
     $product = WC_Helper_Product::create_simple_product();
     $product->set_tag_ids(array($test_tag_1['term_id']));
     $product->set_category_ids(array($test_cat_1['term_id']));
     $product->set_sku('GET TEST SKU SIMPLE');
     $product->save();
     $product_2 = WC_Helper_Product::create_simple_product();
     $product_2->set_category_ids(array($test_cat_1['term_id']));
     $product_2->save();
     $external = WC_Helper_Product::create_simple_product();
     $external->set_category_ids(array($test_cat_1['term_id']));
     $external->set_sku('GET TEST SKU EXTERNAL');
     $external->save();
     $external_2 = WC_Helper_Product::create_simple_product();
     $external_2->set_tag_ids(array($test_tag_2['term_id']));
     $external_2->save();
     $grouped = WC_Helper_Product::create_grouped_product();
     $variation = WC_Helper_Product::create_variation_product();
     $variation->set_tag_ids(array($test_tag_1['term_id']));
     $variation->save();
     $draft = WC_Helper_Product::create_simple_product();
     $draft->set_status('draft');
     $draft->save();
     $this->assertEquals(9, count(wc_get_products(array('return' => 'ids'))));
     // test status
     $products = wc_get_products(array('return' => 'ids', 'status' => 'draft'));
     $this->assertEquals(array($draft->get_id()), $products);
     // test type
     $products = wc_get_products(array('return' => 'ids', 'type' => 'variation'));
     $this->assertEquals(2, count($products));
     // test parent
     $products = wc_get_products(array('return' => 'ids', 'type' => 'variation', 'parent' => $variation->get_id()));
     $this->assertEquals(2, count($products));
     // test skus
     $products = wc_get_products(array('return' => 'ids', 'sku' => 'GET TEST SKU'));
     $this->assertEquals(2, count($products));
     $this->assertContains($product->get_id(), $products);
     $this->assertContains($external->get_id(), $products);
     // test categories
     $products = wc_get_products(array('return' => 'ids', 'category' => array($term_cat_1->slug)));
     $this->assertEquals(3, count($products));
     // test tags
     $products = wc_get_products(array('return' => 'ids', 'tag' => array($term_tag_1->slug)));
     $this->assertEquals(2, count($products));
     $products = wc_get_products(array('return' => 'ids', 'tag' => array($term_tag_2->slug)));
     $this->assertEquals(1, count($products));
     $products = wc_get_products(array('return' => 'ids', 'tag' => array($term_tag_1->slug, $term_tag_2->slug)));
     $this->assertEquals(3, count($products));
     // test limit
     $products = wc_get_products(array('return' => 'ids', 'limit' => 5));
     $this->assertEquals(5, count($products));
     // test offset
     $products = wc_get_products(array('return' => 'ids', 'limit' => 2));
     $products_offset = wc_get_products(array('return' => 'ids', 'limit' => 2, 'offset' => 2));
     $this->assertEquals(2, count($products));
     $this->assertEquals(2, count($products_offset));
     $this->assertNotEquals($products, $products_offset);
     // test page
     $products_page_1 = wc_get_products(array('return' => 'ids', 'limit' => 2));
     $products_page_2 = wc_get_products(array('return' => 'ids', 'limit' => 2, 'page' => 2));
     $this->assertEquals(2, count($products_page_1));
     $this->assertEquals(2, count($products_page_2));
     $this->assertNotEquals($products_page_1, $products_page_2);
     // test exclude
     $products = wc_get_products(array('return' => 'ids', 'limit' => 200, 'exclude' => array($product->get_id())));
     $this->assertNotContains($product->get_id(), $products);
     $variation->delete(true);
 }