условное действие drupal с пользовательским php кодом - PullRequest
3 голосов
/ 23 декабря 2010

При добавлении пользовательского php-кода для условного действия drupal / ubercart предоставляет две php-переменные ($ order и $ account), которые содержат информацию о заказе и счете для только что завершенной проверки.

Iнигде не могу найти в интернете документацию о том, как эти объекты структурированы ... кто-нибудь знает, где находится эта документация или как эти объекты настраиваются ???

спасибо

Ответы [ 2 ]

4 голосов
/ 25 января 2011

Вот как выглядит объект $ 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 голосов
/ 25 декабря 2010
  • $account - объект пользователя.
  • $order является объектом заказа Ubercart.

Есть некоторые минимальные определенные значения для обоих этих объектов, но они могут содержать что угодно. Причина в том, что Drupal позволит модулям расширять объект пользователя, в то время как ubercart позволит модулям расширять объект заказа.

Лучшее, что нужно сделать в таких ситуациях, - это осмотреть объекты, чтобы выяснить, как добраться до того, что вам нужно.

Модуль devel позволит вам печатать переменные, используя dsm(), или выводить переменную в файл журнала, используя dd(). Это два способа получить информацию о переменной.

...