开发者

drupal conditional action with custom php code

When adding custom php code for a conditional action, drupal/ubercart provides two php variables ($order and $account) that hold information about the order and account for the checkout that was just completed.

I can't find anywhere on the internet documentation开发者_JAVA技巧 about how these objects are structured...anyone know where this documentation is or how these objects are setup???

thanks


Here's what the $order object looks like on a fairly standard install (might be a bit different depending on your installation. Of course the products in the order dictate what the items section looks like:

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] => 
                )

        )

)


  • $account is the user object.
  • $order is the ubercart order object.

There are some minimum defined values for both of these objects, but they can contain anything really. The reason is, that Drupal will allow modules to expand the user object, while ubercart will allow modules to expand the order object.

The best thing to do in such situations is to inspect the objects to figure out how to get to what you need.

The devel module will allow you to pretty print variables using dsm() or dump the variable t a log file using dd(). Those are two ways to get to the variable info.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜