How to Disable Checkout in Joomla

Note: This post contains a core modification, which means that the next Joomla update may overwrite it.
Another note: This post only applies to Joomla 2.5. The below will not work on Joomla 3.x.

According to our customers, one of the most annoying features in Joomla is the checkout feature. Yes, this feature does the right thing by not allowing more than one person edit the same content at the same time, but it creates a bigger issue, such as locking content from being edited when that person doesn’t close the content when done with it. Of course, one can easily go to Site >- Maintenance >- Global Check-in to check-in all the tables, but the problem is that this action can only be done by a super user.

Many of these annoyed customers ask us to disable the checkout feature completely, and so we do this for them, here’s how:

  • We open the file modelform.php, which is located under the libraries/joomla/application/component folder.
  • We add the following line to very beginning of the function checkout:

    return true;

  • We save the file and we upload it back to its corresponding place.

  • That’s it! We have completely disabled the checkout feature in Joomla!

But isn’t there a better way to disable checkout?

The method described above is the fastest way (it literally takes less than a minute to implement), but it’s not ideal, since we are modifying the core. A better (albeit much more lengthy) way for doing this is to develop a system plugin that will run on every page load in the backend, and will reset the checked_out field (e.g. set it to zero) in all of Joomla’s content tables. This plugin shouldn’t take a lot of time to develop, but it’s definitely not as easy to implement as the above method!

Why doesn’t Joomla have a setting in the configuration settings to easily disable the checkout feature?

We don’t know – it might be that the Joomla team is overly concerned about concurrency issues, or it might be that Joomla users are used to this very old feature and have now accepted it. (By the way, WordPress doesn’t have this feature).

If you need help disabling the checkout feature in Joomla, then all you need to do is to shoot us an email or give us a call, and we’ll do it for you, either by modifying your Joomla website’s core or by creating a plugin and installing it on your site. Our work is fast, our quality is top-notch, and our fees are super affordable!

6 Responses to “How to Disable Checkout in Joomla”
  1. Comment by Waleed — February 24, 2016 @ 4:58 am

    Please update this article to reflect Joomla 3 structure. The file name in Joomla 3 is: nested.php located under the libraries/joomla/table folder.

  2. Comment by Fadi — February 26, 2016 @ 11:32 am

    Hi Waleed,

    Thanks for the comment. For those using Joomla 3, all you need to do is the following:

    1. Open the file nested.php located under the libraries/joomla/table folder.
    2. Replace this line:
      $checkoutSupport = (property_exists($this, 'checked_out') || property_exists($this, 'checked_out_time'));
      With this one:
      $checkoutSupport = false;
    3. That’s it!

    Thanks again Waleed for this excellent feedback!

  3. Comment by Wesley — March 10, 2017 @ 2:19 am

    Upon following the directions for Joomla 3.6.5 and testing, articles are still checked out.

    Are there any extra steps or lines of code to add to disable check out?

  4. Comment by Fadi — April 5, 2017 @ 9:52 pm

    Hi Wesley,

    Try the following:

    1. Open the file admin.php under the libraries/legacy/model folder.
    2. Just before this line:

      $pk = (!empty($pk)) ? $pk : (int) $this->getState($this->getName() . '.id');

      Add the following line:

      return true;

    3. That’s it! Just tried it on a fresh Joomla 3.6.5 instance and it worked!

    Let me know if it still doesn’t work for you…

  5. Comment by Denis — June 3, 2021 @ 8:26 am

    Last comment from Fadi is working, but need to edit this file –
    public_html/libraries/src/MVC/Model/AdminModel.php

  6. Comment by Rik — December 29, 2023 @ 11:06 am

    I would just like to add that the fix in the last comment [by Denis (June 3, 2021)] also works on Joomla 4 (version 4.4.1) as of December, 2023. I imagine that it should be work for Joomla 5. Thank you very much for this fix!

Leave a comment