带有自定义 php 代码的 drupal 条件操作
Posted
技术标签:
【中文标题】带有自定义 php 代码的 drupal 条件操作【英文标题】:drupal conditional action with custom php code 【发布时间】:2011-05-30 03:15:07 【问题描述】:为条件操作添加自定义 php 代码时,drupal/ubercart 提供了两个 php 变量($order 和 $account),它们保存有关刚刚完成的结帐的订单和帐户信息。
我无法在 Internet 文档中找到有关这些对象的结构的任何地方...任何人都知道此文档在哪里或这些对象是如何设置的???
谢谢
【问题讨论】:
似乎缺少文档...您能var_dump
测试环境中的结构吗?
【参考方案1】:
这是 $order 对象在相当标准的安装中的样子(根据您的安装可能会有所不同。当然,订单中的产品决定了 items 部分的样子:
stdClass Object
(
[order_id] => 123
[uid] => 456
[order_status] => payment_received
[order_total] => 100
[product_count] => 1
[primary_email] => test@example.com
[delivery_first_name] => Test
[delivery_last_name] => Customer
[delivery_phone] => 123-123-1234
[delivery_company] => ABC Company, Inc.
[delivery_street1] => 123 Easy St.
[delivery_street2] =>
[delivery_city] => Anytown
[delivery_zone] => 39
[delivery_postal_code] => 12345
[delivery_country] => 840
[billing_first_name] => Test
[billing_last_name] => Customer
[billing_phone] => 123-123-1234
[billing_company] => ABC Company, Inc.
[billing_street1] => 123 Easy St.
[billing_street2] =>
[billing_city] => Anytown
[billing_zone] => 39
[billing_postal_code] => 12345
[billing_country] => 840
[payment_method] => credit
[data] => Array
(
[cc_data] => ***encrypted credit card data***
)
[created] => 1295455508
[modified] => 1295457962
[host] => 127.0.0.1
[products] => Array
(
[0] => stdClass Object
(
[order_product_id] => 245
[order_id] => 123
[nid] => 5
[title] => Test Product
[manufacturer] =>
[model] => TEST-PRODUCT-SKU
[qty] => 1
[cost] => 100.00000
[price] => 100.00000
[weight] => 0
[data] => Array
(
[attributes] => Array
(
)
[shippable] => 1
[module] => uc_product
)
[order_uid] => 456
)
)
[payment_details] =>
[quote] => Array
(
[method] => flatrate_1
[accessorials] => 0
[rate] => 7.00000
[quote_form] =>
)
[line_items] => Array
(
[0] => Array
(
[line_item_id] => subtotal
[type] => subtotal
[title] => Subtotal
[amount] => 100
[weight] => 0
[data] =>
)
[1] => Array
(
[line_item_id] => 194
[type] => shipping
[title] => Flat Rate Shipping
[amount] => 7.00000
[weight] => 1
[data] =>
)
)
)
【讨论】:
【参考方案2】:$account
是用户对象。
$order
是 ubercart 订单对象。
这两个对象都有一些最低定义的值,但它们实际上可以包含任何东西。原因是,Drupal 将允许模块扩展用户对象,而 ubercart 将允许模块扩展订单对象。
在这种情况下,最好的办法是检查对象以确定如何获得所需的内容。
开发模块将允许您使用dsm()
漂亮地打印变量或使用dd()
将变量转储到日志文件中。这是获取变量信息的两种方式。
【讨论】:
+1: dsm() 或 dpm() 是这样做的方法。关于这些变量中的内容没有单一的文档来源,因为它们可能被任意数量的模块挂钩修改以上是关于带有自定义 php 代码的 drupal 条件操作的主要内容,如果未能解决你的问题,请参考以下文章
使用自定义字段“PHP 代码”查看 Drupal 图像附加路径