How To Fix “Fatal Error: Allowed memory size of … bytes exhausted” In WordPress

Setting up your WordPress blog is easy. With an affordable hosting, you can have you site up in just a few minutes. When you first start out, your site may have little traffic and it runs smoothly. However, when your site get popular and you get more traffic, you may encounter this message when you open your site:

You cannot view your beautiful site anymore and so as your visitors. What is the cause and what can you do to fix it?

What is the cause of Allowed memory size of … bytes exhausted?

As the error message suggests, your WordPress site has used up all the allowed memory. For example, your server settings allocated 32MB for your site to run. However, due to high amount of traffic to your site, it used up all the 32MB. Thus, there is no more memory left for your site to continue running. That’s the reason why you see that message.

How to fix this problem?

As you can see, the cause is lack of memory so the fix should be to increase the amount of allowed memory for WordPress to run. It sounds very simple, however, it is not always the case.

Why so?

The reason is this problem usually occurs on cheap hosting, where the hosting providers usually allocate a small amount of RAM for their users. You must ask your hosting provider to increase the allowed memory for your WordPress site. If they don’t agree to do so, you are out of luck.

However, in case they agree to increase your memory limit, you can do the following steps to give your site more memory to run.

  1. Going to your site by using cPanel/FTP/SSH
  2. Open wp-config.php
  3. Put this line:

define( ‘WP_MEMORY_LIMIT’, ’64M’ );

right above the part says: /* That’s all, stop editing! Happy blogging. */

You can replace the number 64 to a higher one if allowed. For a blog that gets a lot of traffic, you may need to set the limit to 512M or even more.

Then, save the wp-config.php file and you are done. Your WordPress site now have more memory to operate. Make sure to monitor your site closely to see if you still have this error. If you still get this error, you can increase the limit once again. In case the memory limit that your hosting provider gives you is low, you should consider upgrading your hosting plan to a VPS.

 

How To Add New Currency To WooCommerce

Woocommerce comes with quite many currencies. In fact, if you are selling items internationally, you got a plenty of options to choose from such as USD, GBP, EUR or even BTC (bitcoin). However, there are a lot of currencies isn’t in that list. For example, what if you want to accept ETH (Ethereum) as your currency? Don’t worry, we can make that work.

Check if your currency is supported by Woocommerce

Woocomemerce is updated frequently. Thus, chances are your currency get added in the latest release. The first thing you need to do is to:

  1. Update Woocommerce to the latest version
  2. Go to Woocommerce->Settings->General->Scroll to the bottom to see the currency options. You can see the list of supported currencies there

If your desired currency is in the list, that’s great! You don’t need to do anything else. If it isn’t, read on.

Introducing the necessary hooks

If you are unfamiliar with the term hooks, you can take a look at the official document here. However, it is not necessary to understand it thoroughly to add new currencies to Woocommerce.

There are two filter hooks you need to use to add new currency to Woocommerce

  1. woocommerce_currencies
  2. woocommerce_currency_symbol

As the names suggest, the first one will be used to register new currency and the second one will be used to register the currency’s symbol.

The actual code

I’m going to register the Ethereum currency to Woocommerce. However, you can define and add any type of currency you want. You can even invent a currency that isn’t available right now.

add_filter( 'woocommerce_currencies', 'bc_add_new_currency' );
add_filter( 'woocommerce_currency_symbol', 'bc_add_new_currency_symbol', 10, 2 );

function bc_add_new_currency( $currencies ) {
     $currencies['ETH'] = __( 'Ethereum', 'your-theme-text-domain' );
     return $currencies;
}


function bc_add_new_currency_symbol( $symbol, $currency ) {
     
     if( $currency == 'ETH' ) {
          $symbol = '♦';
     }
     return $symbol;
}

There are a few places in the code above you need to pay attention to:

  1. The symbol of ETH is ♦. You can replace this with your currency’s symbol .
  2. Name of your currency. In the code, it is “Ethereum”. You can change this to the name of your currency. For example: Bitcoin Cash
  3. The index key ‘ETH’. This can be anything but unique across all currencies.

Now, after you modify the code to match your currency of choice, put it at the end of the functions.php file in your active theme folder:

The result

Now, if you go to Woocommerce->Settings->General and scroll down to Currency Options, you can search for the new currency:

That’s it! That’s how you can add new currencies to Woocommerce. You can add as many new currencies as you want, there is no limit.