好的,这是我根据您在问题中提供的新信息的新答案
==================================
所以这可能比您预期的要复杂一些,但并非不可能!有两件事很重要:
- 附加到您的订单的订单项将包含您的产品和
- 您将需要使用规则组件,以便能够在规则操作中添加额外的“条件操作”组合
这是如何做到的:
在“完成结帐过程”触发的规则中,在“操作”部分添加一个循环。您应该在“添加操作”旁边看到“添加循环”。我们将使用此循环遍历您订单中的所有商业行项目:这就是产品隐藏的地方
配置循环时,告诉它遍历 'commerce-order:commerce-line-items' 并重命名,或者记住在每个行项目通过时它将调用什么。
现在 - 因为它正在处理您订单的每个订单项,我们需要使用自己的一组“条件”和“操作”来调用一个全新的规则。我们需要的条件是检查该行项目是否包含您期望的产品,并且操作可以是您想要的任何内容——基于某个字段或其他内容发布一个节点。就我而言,该操作将只是发送一封电子邮件以证明我找到了产品。当我们需要规则中的条件动作集时,我们需要创建一个规则组件!
转到 /admin/config/workflow/rules/components 以创建一个新的规则组件来为上述每个项目运行。单击页面顶部的“添加新组件”链接
从下拉选项中选择“规则”,因为这将是一个包含条件和操作的组件
命名规则,在“变量”部分,我们必须让它知道我们将向它传递一个参数来使用。在我们的例子中,它将是当前正在迭代的商业订单项。
- 向您的组件添加两个条件(或您认为必要的任何检查)。我添加了 'Entity is of type' => Commerce Line item 和 'Entity has field' => commerce_product。所以这适用于我所有的产品。
- 我在我的组件上设置的条件是发送一封电子邮件,我在邮件正文中填写了以下内容:[line-item:commerce_product],每次我在邮件中打印出精美的产品名称测试检查!
但首先 - 保存后如何为每个订单项类型调用此组件?继续阅读:
- 保存组件后,在循环
中添加一个操作:
- 从现在开始,在您的操作的最底部,您将看到一个全新的“组件”部分,在您的情况下,您现在应该只有一个。选择它为每个项目调用它:
- 最后一步是填写要传递给该组件的参数,这显然是您当前所在的 list_item,或者如果您更改了当前项目的计算机名称,则它是什么。
- 保存并测试!
哇!这有点复杂,但我希望它能让你朝着正确的方向前进!