当前位置: 首页 > 知识库问答 >
问题:

如何使用WooCommerce的WC_产品类创建可变产品?

苍意智
2023-03-14

我试图使用WC_产品类在WooCommerce中创建变量产品。我们成功创建了一个简单的产品,但无法创建具有以下代码的可变产品:

 $products = new WC_Product();//$wcProductID
   $products->set_name('Test Product Config For True color123');
    $products->set_sku('testconfig_ptttttkkkkkkkkkkkk123');
    $products->set_regular_price(200);   
    $products->set_sale_price(180);
     $products->set_attributes( array('name'=>'Color',
                'slug'=>'color',
                'position'=>'0',
                'visible'=>'true',
                'variation'=>'true',
                'options'=>array('red','black')
            ) );

          ));

   $result=$products->save();

这段代码正在WooCommerce中创建简单的产品。我们需要创建一个具有选项和变化的可变产品。

    $products->set_variation(array( array(
                    'sku' => 'codered',
                    'regular_price' => '29.98',
                    'attributes' => array( 
                        array( 
                            'name'=>'color',
                            'options'=>'red'
                        )

                    ) 
                ),
                array(
                    'sku' => 'codeblack',
                    'regular_price' => '29.98',
                    'attributes' => array( 
                        array( 
                            'name'=>'color',
                            'options'=>'black'
                        )
                    ) 
                ) 
              ));

共有1个答案

田博远
2023-03-14

您可以创建如下可变产品:

try {
     $new_variable_product = new WC_Product_Variable();
     $new_variable_product->set_name("Testname");
     $new_variable_product->set_sku("Testsku");

     $new_variable_product->save();
 } catch (Exception $ex) {
     /* ERROR LIKE "SKU ALREADY EXISTS" */
     write_error_log($ex->getMessage());
 }

https://docs.woocommerce.com/wc-apidocs/class-WC_Product_Variable.html

一个简单的产品是这样创建的:

try {
      $new_simple_product = new WC_Product_Simple();
      $new_simple_product->set_name("Testname");
      $new_simple_product->set_sku("Testsku");

      $new_simple_product->save();
} catch (Exception $ex) {
      /* ERROR LIKE "SKU ALREADY EXISTS" */
      write_error_log($ex->getMessage());
}

https://docs.woocommerce.com/wc-apidocs/class-WC_Product_Simple.html

 类似资料:
  • 我试图以编程方式为一个可变产品添加两个产品变体。基于此回答线程,我使用以下缩短的函数: 我使用以下数据数组: 然后我运行以下函数: 其中,是我要对其进行更改的变量产品的id,是上面定义的数据数组。 我的问题是函数只插入foreach in函数中的最后一个数据。 i、 e.在商业中的产品变化有: 红色W1 红色W1 但我想: 蓝色W1 红色W1

  • 好吧,我会试着问这个问题,不会让每个人都和我的困惑混淆 我正在尝试为WooCommerce制作一个前端表单,以便客户可以从前端制作产品。我有所有的其他部分,我想实施到目前为止工作,即标题,内容和价格都张贴在正确的职位类型。但无法将其发布到产品类别 WooCommerce类别是一个自定义分类法,名为product_cat product_cat孩子是条款,我有三个- 我希望此表单中的所有帖子都自动处

  • 我需要一个代码来检查woocommerce产品类型是否不是“变量” 为了检查某物是否是可变产品,我通常使用这个: 但我需要检查它是否不是一个变量产品,所以我认为我应该这样做,但这会导致PHP错误。。。 编辑:我得到以下错误:"致命错误:未捕获错误:调用成员函数is_type()在空" 我以为我的代码有问题。但后来我在其他模板文件中测试了它,它成功了。我想在functions.php中使用我的php

  • 我试图以编程方式创建一个订单。使用非常简单: 这符合预期,并且为ID为100的简单产品创建了正确数量的订单。 然而,如果我尝试用一个变体来实现这一点,它的行为似乎并不正确。经过多次尝试和错误,我以这种方式完成了工作: 然而,尽管它确实创建了具有正确产品和正确变化ID的订单,订单的总数总是0(巧合的是,这是第一个变化的价格)。 最初我尝试的是

  • 我已经为Woocommerce开发了定制的单一产品模板,这些模板可以正常工作并符合预期。问题是,现在客户想要销售的产品有一些不同的变体,而我不知道如何添加此功能。 目前在产品页面上,我使用了the_post_thumbail()和get_post_meta()等函数来显示产品的各种信息,如价格和在产品帖子类型中输入的摘录。然后我使用do_action(woocommerce_simple_add_

  • 我对每个包含不同价格的产品都有一些变化,我试图用jQuery获得产品的可变价格,我得到了,但是下面的代码只得到最小变化价格,我想得到当前变化的当前价格。然后,当我更改另一个选择值时,前端的变化会以正确的价格进行更改,但在控制台日志中,会反复显示最小价格,而不是相应变化的相应价格。 我试图研究和wp util。js文件来寻找一些方法,但我不能这样做。 有没有一种方法可以正确地检索当前变化价格与jQu