The completion message is not being displayed at the end of the checkout process.

Also I can't see or override the completion message in the configs. There is no checkbox to Override. Nor does the default message show up.

see attached file below.

Just upgraded to drupal 7.9. This is not a kickstart project. It was migrated from 6 to vanilla drupal. And commerce was added by hand

Thanks

Todd

Comments

toddgeist’s picture

In turned out that the default Completion Message variables did not have formats. So the form was not Accessible.

$form['commerce_checkout_completion_message_override'] = array(
    '#type' => 'checkbox',
    '#title' => t('Override the default checkout completion message. This may interfere with translation on multilingual sites.'),
    '#default_value' => variable_get('commerce_checkout_completion_message_override', FALSE),
    '#access' => filter_access(filter_format_load($text_format)),
  );

the access was getting set to false since there was text_format.

after hacking that line to equal true, the form showed up, and I was able to set the message to a format. Then I could undo the hack and all was well.

I believe this also could have been fixed by deleting the Variables in the Vars table

rszrama’s picture

Title: Check Out Completion Message Is not visible » Checkout completion message not visible on a site upgraded from D6
Status: Active » Fixed

Ok, the problem here is probably just one that should be documented like so: the default checkout completion is run through a variable input filter. By default, it looks for full_html and will fallback to plain_text if that is not available. Since you upgrade from D6, perhaps you don't have either one of those input filters. Maybe yours just have numeric names - not sure how the update process actually handles this. The solution would be for you to go edit the checkout completion pane's settings forms and select a valid input filter to use for the message text.

matsearle’s picture

Thank you very much for the above solution. I have just encountered this same problem over the weekend after implementing the commerce module on a site I upgraded from d6 to d7.

rszrama’s picture

Category: bug » support
chakrapani’s picture

Little More Explanation & solution:

When a site is converted from D6 to D7, the machine names of input formats are left as integers. Where as D7 has plain_text,filtered_html and full_html as machine names for the input formats.

So, whenever commerce is installed in D7, it looks for one of the input formats mentioned above but fails. And stores (empty)nothing in place of format. Now wherever format is used, access fails and fields wont appear as expected.

Solution:

  • First you need to create input formats with machine names 'plain_text', 'filtered_html' and 'full_html' .This will help to solve similar input format problems across the site.
  • Now to fix the above problem, we need to change the variable 'commerce_checkout_completion_message' which is an array.
  • The array contains two key value pairs with one key as 'value' and another 'format'. We need to change the value of 'format' to one of the valid formats(plain_text,filtered_html or full_html)
    • If you are a developer you know how to do it by writing code.
    • If not, one quick & dirty method:
      1. Go to sites/all/modules/contrib/commerce/modules/checkout/includes/commerce_checkout.checkout_pane.inc
      2. go to line:75 and add the below code
        $text_fomat = 'filtered_html';
        
      3. go to 'admin/commerce/config/checkout/form/pane/checkout_completion_message' page, select the checkbox in checkout pane configurations and save
      4. NOW REMOVE THE ABOVE ADDED LINE OF CODE.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.