diff --git a/modules/checkout/commerce_checkout.module b/modules/checkout/commerce_checkout.module index 9b868cd..9751892 100644 --- a/modules/checkout/commerce_checkout.module +++ b/modules/checkout/commerce_checkout.module @@ -475,14 +475,15 @@ function commerce_checkout_pages() { } /** - * Returns the page ID of the first checkout page. - * - * By default the page ID is the first checkout page sorted by weight. You may - * also set the "commerce_checkout_first_checkout_page" variable to prevent - * the need to run commerce_checkout_pages() which builds page and pane info. + * Returns the page ID of the first checkout page sorted by weight. */ function commerce_checkout_first_checkout_page() { - return variable_get('commerce_checkout_first_checkout_page', key(commerce_checkout_pages())); + // We do not use commerce_checkout_pages() as that builds pane data. + $checkout_pages = module_invoke_all('commerce_checkout_page_info'); + drupal_alter('commerce_checkout_page_info', $checkout_pages); + uasort($checkout_pages, 'drupal_sort_weight'); + + return key($checkout_pages) } /** diff --git a/modules/checkout/tests/commerce_checkout.test b/modules/checkout/tests/commerce_checkout.test index 40bb738..11ec9cf 100644 --- a/modules/checkout/tests/commerce_checkout.test +++ b/modules/checkout/tests/commerce_checkout.test @@ -529,13 +529,9 @@ class CommerceCheckoutTestProcess extends CommerceBaseTestCase { $checkout_state = commerce_order_state_load('checkout'); $this->assertEqual($checkout_state['default_status'], 'checkout_checkout'); - // Manually define the checkout page that should serve as default status. - variable_set('commerce_checkout_first_checkout_page', 'payment'); - commerce_order_states_reset(); - - // Verify checkout_payment is now default status. - $checkout_state = commerce_order_state_load('checkout'); - $this->assertEqual($checkout_state['default_status'], 'checkout_cpayment'); + // Checkout pane data should not have been built by checking order state. + $checkout_panes = drupal_static('commerce_checkout_panes'); + $this->assertTrue($checkout_panes == NULL) } }