Posted by mrfelton on March 29, 2012 at 4:18pm
5 followers
| Project: | Commerce Checkout Progress |
| Version: | 7.x-1.x-dev |
| Component: | Miscellaneous |
| Category: | feature request |
| Priority: | normal |
| Assigned: | Unassigned |
| Status: | needs review |
Issue Summary
The code uses a 'has_item' properly to decide weather or not a checkout page should be included in the progress bar. It hard sets this to TRUE for everything except commerce_payment_redirect. Other modules do a similar redirect technique (eg commerce_extra's login page), as can custom checkout pages/panes.
This module should respect the has_item property set on a checkout page's definition. This would allow us to set/unset this using hook_commerce_checkout_page_info_alter() or something similar to dynamically include/exclude checkout pages from showing in the progress bar.
Comments
#1
I agree. A patch or code snippet would be greatly appreciated. Thanks!
#2
This does the trick.
#3
Actually, I needed a little more than this, as we need to be able to alter the state based on attributes of the order, which we can not do from hook_commerce_checkout_page_info_alter() as it's no possible to get the $order object from there. See #1509450: Unable to load current order from hook_commerce_checkout_page_info_alter.
So, I added a drupal_alter function to allow other module to be able to directly alter the include/exclude state of checkout pages.
#4
Updated patch fixes whitespace issue.
#5
I just closed #1438836: Show all checkout panes in progress as a duplicate of this one.
#6
OK, so how do I implement this?
As in, what is the specific line I need to set so that $page[page_id] will not display in the checkout progress bar?
And also, so I am sure, do I call mymodule_commerce_checkout_progress_get_items_alter(&$pages) ?
#7
I changed
to
in order to get things working.