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

使用其他产品作为选项-WooCommerce

姬欣怡
2023-03-14

在我深入这个兔子洞之前。。。

我有一个类别的产品,基本上是一个选择的4个其他产品。它可以是所选产品的任意组合。定价基于这些产品的正常价格。

到目前为止我所做的

通过普通属性接口控制。管理员输入一个属性用于定制,其值为项目类别,即纸杯蛋糕

结果是与纸杯蛋糕类别中的产品组合相关。此产品将是定制组合产品中纸杯蛋糕类别中4个选项中的任意/全部选项。

我在函数中也有一个函数。php查询具有此set属性的所有产品,并构建一个整洁的id/title/cost小数组。我早些时候通过这篇文章做到了这一点

$useable = array();
foreach ($products as $product){
    $useable[] = array(
        'id' => $product->ID,
        'name' => $product->post_title,
        'desc' => $product->post_excerpt,
        'cost' => floatval(wc_get_product($product->ID)->get_price())/4
        //cost is 1/4 as 4 will be selected to create 1 new product
    );
}

笔记

它不需要实际地将选择与特定产品联系起来。对于管理员来说,在最终订单中显示选定的产品名称就足够了。但是,保留该引用会很好,因为它可能会导致以后的附加功能。

目前不关心库存,也不关心所选产品的任何其他属性,除了价格。

思绪

我已经尝试过通过LoicTheAztec的这篇文章以编程方式创建自定义变体,但到目前为止,我还没有让它们显示出来。我也许可以稍微戳一下,因为他的东西通常都在现场。

foreach ($useable as $useit){
    $display = $useit['name'] . " (" . $useit['cost'] . ")";
    $variation_data =  array(
        'attributes' => array(
            'flavor-one'  => $display,
            'flavor-two'  => $display,
            'flavor-three'  => $display,
            'flavor-four'  => $display
        ),
        'sku'           => '',
        'regular_price' => $useit['cost'],
        'sale_price'    => ''
    );
    var_dump($product->get_id());
    create_product_variation($product->get_id(), $variation_data);          
}

或者,我可以手动创建下拉选择,并根据选择对价格运行过滤器。这看起来像是许多手动功能的重新创建——检查有效性、定价等。

最后一个问题

是否有一种方法可以将一个产品用作另一个产品的可变产品属性?这看起来并不牵强,但我一直无法用谷歌搜索foo。我的GoogleFoo最近不太好。

共有1个答案

方璞
2023-03-14

假设单个产品可以是10个其他产品中的4个的任意组合,使用变体意味着添加10000个可能的产品。这似乎不合理,所以我选择了另一种方式。

将很快用代码扩展这个答案,但基本上:

查询帖子以获取具有自定义属性并使用此可配置选项对其进行分组的产品类型帖子。将这些输出为添加到购物车表单中带有项选项的选择元素。选项值作为产品ID,并显示为该选项的产品名称价格。

钩住addtocart操作以检查选项(在$\u POST中传递)并将它们作为属性存储在购物车项目上。

挂接到购物车定价过滤器,并使用购物车项目属性根据分类产品的原始价格计算最终产品价格。

也:

  • 添加属性显示到购物车
  • 添加前端控件,以显示具有更改属性的更改价格
 类似资料:
  • 进程优先权 当计划线程时使用的优先权。在有需要时可调整优先权到较高或较低。 文件位置 你可以为不同的文件类型改变文件夹。在默认情况下,大部分的文件设置在设置位置。然而, 一些文件是保存在 profiles目录和全部日志文件保存在 logs 目录。 文件关联(只限于完整版本) 文件关联是 Navicat 使用什么来打开 Navicat 已保存的文件。例如:.npt 文件(数据传输设置文件)将会使用数

  • 我一直在为使用WooCommerce的客户开发一个电子商务商店,我遇到了一个非常奇怪的问题。我所有的产品都是可变产品,我对它们进行了如下设置:变量1-重量(0,0.5,1.0,1.5,2.0…5.0千克)变量2-单位(0,1,2,3,4,5…10)变量3-切割类型(研磨、切片、整体等)我设置变量的方式使客户必须选择变量1或变量2(重量或单位)和变体3。如果他们选择按重量(重量大于“0”)购买产品,

  • 本文向大家介绍用户为什么选择你的产品,你的产品相比其他竞品有什么优势?相关面试题,主要包含被问及用户为什么选择你的产品,你的产品相比其他竞品有什么优势?时的应答技巧和注意事项,需要的朋友参考一下 考察竞品分析能力以及对自己产品的了解程度。 首先,需要明确市场上,你的竞品有哪些,列举一些主要的竞争对手;其次,分析自己产品主要的特色和其他竞品的区别(用户体验、需求、场景、业务模式等);最后,归纳总结产

  • 我正在建立一个电子商务网站。我的产品有点问题。 “添加到购物车”按钮对简单的产品效果很好,但对可变的产品不起作用。它给出了一个通知。 我到处找,在网上试了几条建议,但都不管用。所以我查看了WooCommerce源文件:。 在函数: 所以我尝试回声,和。它们都没有任何内容,因为当我回声时:它不会输出任何内容。 有什么建议吗?

  • 我希望,如果我选择“mammals”,动物选择选项只显示值为1的选项data-animal_class。 我知道如何获得哺乳动物值,但我不知道如何使用过滤器 这是我的代码:

  • 我目前正在使用安装了WSL Ubuntu 18.04的Windows 10。我试图使用WSL作为WebStorm中的默认终端,但是,我可以使用WSL中的bash,但是默认目录不会设置为默认项目位置。 有人知道如何正确设置吗?