Jump to content

PayPal option no longer available


Robin Somes

Recommended Posts

Site: piscesconservation.com/cube
CC 6.4.10/All In One Shipping 1.0.24/Facebook 1.0.1/PayPal Commerce Platform 1.7.8/PayPal standard payment gateway 1.0.8 (disabled)/Product Addons 1.0.14/SagePay 1.0.12
Default skin

The option to pay using PayPal is no longer available on our shop site. Looking through past orders, we've not had a single PayPal payment since October 2022, when prior to that PayPal accounted for 60 - 70% of our payments.

Checking under Extensions/Manage extensions, PayPal Commerce Platform is still enabled, with no obvious warnings.
Under Request Log, from the update to CC 6.4.10 I did this morning, CubeCart seems to be talking to https://api.paypal.com OK.
Checking our PayPal account, CubeCart is still listed in the API Permissions section.

Checking the previous orders and update log, it seems we've not taken a PayPal payment since September 9th 2022. This, as I mentioned above, is most unusual. I upgraded the site to CC 6.4.4 on September 12th. Is it feasible that something in version 6.4.4 broke the list of payment gateways available, and that hasn't yet been un-broken?

Finally, looking at Dashboard: Maintenance: Database maintenance, the database db{REDACTED}_cubecart.CubeCart_order_summary has a warning attached: "has a key type KEY but expecting UNIQUE KEY". I don't know if this is relevant, but report it anyway. All other DBs are reported as OK.

Where should I start looking next?

Robin

Edited by Robin Somes
Added info.
Link to comment
Share on other sites

The "has KEY expecting UNIQUE KEY" note is of no consequence with respect to databasing orders made.

Are there a large amount of orders Pending - on the theory that shopping baskets were abandoned because of no PayPal method to make payment?

Did PayPal still show as an option on checkout?

On the admin Dashboard, does the sales chart show a noticeable drop after September?

Link to comment
Share on other sites

51 minutes ago, Lastwolf said:

try disconnecting and reconnecting your paypal account?

Seems like a bug with one of the keys from the error displayed.

Thank you; just tried that, but it has made no difference. I'd have a wild guess that the following lines from content.gateway.php might be connected:
 

      {foreach from=$GATEWAYS item=gateway}
      <li>
         <input name="gateway" type="radio" value="{$gateway.folder}" id="{$gateway.folder}" {$gateway.checked}>
         {if !empty($gateway.help)}
         <a href="{$gateway.help}" class="info" title="{$LANG.common.information}"><svg class="icon"><use xlink:href="#icon-info-circle"></use></svg></a>
         {/if}
         <label for="{$gateway.folder}">{$gateway.description}</label>
      </li>
      {/foreach}

Perhaps $GATEWAYS is for some reason missing PayPal?

 

6 minutes ago, bsmither said:

The "has KEY expecting UNIQUE KEY" note is of no consequence with respect to databasing orders made.

Are there a large amount of orders Pending - on the theory that shopping baskets were abandoned because of no PayPal method to make payment?

Did PayPal still show as an option on checkout?

On the admin Dashboard, does the sales chart show a noticeable drop after September?

We have had a few orders left Pending, but I wouldn't say that the number was more than usual, nor was there a significant drop after September, I don't think (bearing in mind that the winter months tend to be quieter for us anyway).

If I go through to Checkout, there is still no sign of PayPal as an independent option (although it does appear as one of the payment methods usable in the SagePay gateway, since I've just enabled that this morning).

The disappearance of PayPal as an independent option pre-dates adding it to SagePay, I believe.

Link to comment
Share on other sites

Bring that skin template up for editing. At the very end, add {debug} and save.

When next viewing that page, there will be a popup. (Your browser may complain about the page wanting to open a popup. Let it happen. The popup may show the whole page. If that happens, have the browser reload the page.)

Remove the added {debug} and re-save the template. You only want that feature happening for as long as it takes to get the popup list of variables.

The popup will show a list of all the variables assigned to the template rendering engine (Smarty). Scroll to find $GATEWAY. Determine if PayPal is present.

 

Link to comment
Share on other sites

9 minutes ago, bsmither said:

Bring that skin template up for editing. At the very end, add {debug} and save.

When next viewing that page, there will be a popup. (Your browser may complain about the page wanting to open a popup. Let it happen. The popup may show the whole page. If that happens, have the browser reload the page.)

Remove the added {debug} and re-save the template. You only want that feature happening for as long as it takes to get the popup list of variables.

The popup will show a list of all the variables assigned to the template rendering engine (Smarty). Scroll to find $GATEWAY. Determine if PayPal is present.

 

Thanks Brian. Assuming that you mean /skins/foundation/templates/content.gateway.php, I've added {debug} at the very end, uploaded, refreshed the page, etc.

No sign of a pop-up, or of the browser trying to stop one, consequently no list of variables.

If not that file, which should I be editing?

Link to comment
Share on other sites

The template content.checkout.php has the same $GATEWAYS loop. Try that one.

But if you do not see PayPal as a choice in a list of possible payment gateways, then either CubeCart is deciding that PayPal is not enabled, or that PayPal is the one and only gateway available - so why make a list of choices having only one choice.

 

Link to comment
Share on other sites

12 minutes ago, bsmither said:

The template content.checkout.php has the same $GATEWAYS loop. Try that one.

But if you do not see PayPal as a choice in a list of possible payment gateways, then either CubeCart is deciding that PayPal is not enabled, or that PayPal is the one and only gateway available - so why make a list of choices having only one choice.

 

Works with content.checkout.php:

$GATEWAYS

Origin: "Smarty object"

Value

Array (1)
0 => Array (9)
  module_id => "1584"
  module => "gateway"
  folder => "SagePay"
  status => "1"
  default => "1"
  countries => null
  position => "0"
  description => "Credit/debit card via SagePay"
  checked => "checked="checked""

 

If I disable the SagePay extension in the site admin pages, then the Checkout page shows only the radio button, but no text label. Adding {debug} to content.checkout.php then shows no variable $GATEWAYS

I have tried disabling / re-enabling the PayPal Commerce Platform, and making it the default method, but that makes no difference.

Link to comment
Share on other sites

"Shows only the radio button, but no text label."

I recall one or two issues that this caused.

Using an external database utility, examine the table CubeCart_modules. If there are any rows where the 'module' column is blank, delete that row.

There is this issue, but it has been fixed.

https://github.com/cubecart/v6/issues/3045

 

Link to comment
Share on other sites

2 hours ago, bsmither said:

"Shows only the radio button, but no text label."

I recall one or two issues that this caused.

Using an external database utility, examine the table CubeCart_modules. If there are any rows where the 'module' column is blank, delete that row.

There is this issue, but it has been fixed.

https://github.com/cubecart/v6/issues/3045

 

This is what I see, using phpMyAdmin. Both SagePay and paypal_commerce are marked as default, but unchecking the default option for paypal_commerce in CC admin made no difference. Apart from that the only thing that stands out is that the module entry for paypal_commerce is set to 'plugins', not 'gateway'. I'm guessing that could be significant. However, changing the value to 'gateway' made no difference (so I've re-set it to 'plugins').
 

ppal.jpg

Edited by RobinSomes
Added info
Link to comment
Share on other sites

7 hours ago, bsmither said:

PayPal Commerce is actually a plugin.

In admin, Error Log, see if there are any entries in the System Error Log tab.

 

No entries at all in the System Error log (and nothing flagged in red in any of the other logs).

Would there be any mileage in uninstalling PayPal Commerce and doing a fresh installation?

Link to comment
Share on other sites

Just to confirm, the PayPal module is installed in CubeCart's /modules/plugins/ folder? The module's folder is named paypal_commerce (spelled exactly that way)?

Please create PHP's error log. See:

https://forums.cubecart.com/topic/51550-how-to-create-the-error-log/

 

Edited by bsmither
Link to comment
Share on other sites

3 hours ago, bsmither said:

Just to confirm, the PayPal module is installed in CubeCart's /modules/plugins/ folder? The module's folder is named paypal_commerce (spelled exactly that way)?

Please create PHP's error log. See:

https://forums.cubecart.com/topic/51550-how-to-create-the-error-log/

 

Thanks again, Brian; PayPal module appears to be installed, and spelt, in the correct place. I've added a couple of things to the basket, gone through to checkout, entered name and address details and gone through to the next 2 pages, stopping just short of choosing the payment method in SagePay. error_log says:

[23-Feb-2023 21:31:08 Europe/London] PHP Warning:  Undefined array key "admin_id" in {REDACTED}/cube/classes/admin.class.php on line 151
[23-Feb-2023 21:31:20 Europe/London] PHP Warning:  Undefined array key "comments_width" in {REDACTED}/cube/modules/social/Facebook/social.class.php on line 52
[23-Feb-2023 21:31:20 Europe/London] PHP Warning:  Undefined array key "_g" in {REDACTED}/cube/classes/ssl.class.php on line 39
[23-Feb-2023 21:31:23 Europe/London] PHP Warning:  Undefined array key "comments_width" in {REDACTED}/cube/modules/social/Facebook/social.class.php on line 52
[23-Feb-2023 21:31:23 Europe/London] PHP Warning:  Undefined variable $stock_warning in {REDACTED}/cube/classes/cart.class.php on line 426
[23-Feb-2023 21:31:24 Europe/London] PHP Warning:  Undefined array key "comments_width" in {REDACTED}/cube/modules/social/Facebook/social.class.php on line 52
[23-Feb-2023 21:31:25 Europe/London] PHP Warning:  Undefined array key "_g" in {REDACTED}/cube/classes/ssl.class.php on line 39
[23-Feb-2023 21:31:26 Europe/London] PHP Warning:  Undefined array key "comments_width" in {REDACTED}/cube/modules/social/Facebook/social.class.php on line 52
[23-Feb-2023 21:31:26 Europe/London] PHP Warning:  Undefined array key "comments_width" in {REDACTED}/cube/modules/social/Facebook/social.class.php on line 52
[23-Feb-2023 21:31:29 Europe/London] PHP Warning:  Undefined variable $list in {REDACTED}/cube/classes/catalogue.class.php on line 794
[23-Feb-2023 21:31:32 Europe/London] PHP Warning:  Undefined array key "_g" in {REDACTED}/cube/classes/ssl.class.php on line 39
[23-Feb-2023 21:31:32 Europe/London] PHP Warning:  Undefined variable $list in {REDACTED}/cube/classes/catalogue.class.php on line 794
[23-Feb-2023 21:31:32 Europe/London] PHP Warning:  Undefined variable $list in {REDACTED}/cube/classes/catalogue.class.php on line 794
[23-Feb-2023 21:31:33 Europe/London] PHP Warning:  Undefined array key "comments_width" in {REDACTED}/cube/modules/social/Facebook/social.class.php on line 52
[23-Feb-2023 21:31:35 Europe/London] PHP Warning:  Undefined variable $stock_warning in {REDACTED}/cube/classes/cart.class.php on line 426
[23-Feb-2023 21:31:35 Europe/London] PHP Warning:  Undefined array key "comments_width" in {REDACTED}/cube/modules/social/Facebook/social.class.php on line 52
[23-Feb-2023 21:31:35 Europe/London] PHP Warning:  Undefined array key "_g" in {REDACTED}/cube/classes/ssl.class.php on line 39
[23-Feb-2023 21:31:36 Europe/London] PHP Warning:  Undefined array key "comments_width" in {REDACTED}/cube/modules/social/Facebook/social.class.php on line 52
[23-Feb-2023 21:31:37 Europe/London] PHP Warning:  Undefined array key "billing_address" in {REDACTED}/cube/classes/cubecart.class.php on line 1222
[23-Feb-2023 21:31:37 Europe/London] PHP Warning:  Trying to access array offset on value of type null in {REDACTED}/cube/classes/cubecart.class.php on line 1222
[23-Feb-2023 21:31:37 Europe/London] PHP Warning:  Undefined array key "options_identifier" in {REDACTED}/cube/classes/cart.class.php on line 1225
[23-Feb-2023 21:31:37 Europe/London] PHP Warning:  Undefined array key "packagingWeight" in {REDACTED}/cube/modules/shipping/All_In_One_Shipping/shipping.class.php on line 40
[23-Feb-2023 21:31:37 Europe/London] PHP Warning:  Undefined array key "options_identifier" in {REDACTED}/cube/classes/cart.class.php on line 1225
[23-Feb-2023 21:31:37 Europe/London] PHP Warning:  Undefined array key "packagingWeight" in {REDACTED}/cube/modules/shipping/All_In_One_Shipping/shipping.class.php on line 40
[23-Feb-2023 21:31:37 Europe/London] PHP Warning:  Undefined array key "base_folder" in {REDACTED}/cube/classes/cubecart.class.php on line 2323
[23-Feb-2023 21:31:40 Europe/London] PHP Warning:  Undefined array key "_g" in {REDACTED}/cube/classes/ssl.class.php on line 39
[23-Feb-2023 21:31:41 Europe/London] PHP Warning:  Undefined array key "billing_address" in {REDACTED}/cube/classes/cubecart.class.php on line 1222
[23-Feb-2023 21:31:41 Europe/London] PHP Warning:  Trying to access array offset on value of type null in {REDACTED}/cube/classes/cubecart.class.php on line 1222
[23-Feb-2023 21:32:05 Europe/London] PHP Warning:  Undefined array key "options_identifier" in {REDACTED}/cube/classes/cart.class.php on line 1225
[23-Feb-2023 21:32:05 Europe/London] PHP Warning:  Undefined variable $missing_field in {REDACTED}/cube/classes/cubecart.class.php on line 1023
[23-Feb-2023 21:32:05 Europe/London] PHP Warning:  Undefined array key "digital_only" in {REDACTED}/cube/classes/cubecart.class.php on line 1109
[23-Feb-2023 21:32:05 Europe/London] PHP Warning:  Undefined variable $error_messages in {REDACTED}/cube/classes/cubecart.class.php on line 1155
[23-Feb-2023 21:32:05 Europe/London] PHP Warning:  Undefined array key "packagingWeight" in {REDACTED}/cube/modules/shipping/All_In_One_Shipping/shipping.class.php on line 40
[23-Feb-2023 21:32:05 Europe/London] PHP Warning:  Undefined array key "base_folder" in {REDACTED}/cube/classes/cubecart.class.php on line 2323
[23-Feb-2023 21:32:05 Europe/London] PHP Warning:  Undefined array key "options_identifier" in {REDACTED}/cube/classes/cart.class.php on line 1225
[23-Feb-2023 21:32:05 Europe/London] PHP Warning:  Undefined array key "packagingWeight" in {REDACTED}/cube/modules/shipping/All_In_One_Shipping/shipping.class.php on line 40
[23-Feb-2023 21:32:05 Europe/London] PHP Warning:  Undefined array key "base_folder" in {REDACTED}/cube/classes/cubecart.class.php on line 2323
[23-Feb-2023 21:32:11 Europe/London] PHP Warning:  Undefined array key "_g" in {REDACTED}/cube/classes/ssl.class.php on line 39
[23-Feb-2023 21:32:11 Europe/London] PHP Warning:  Undefined array key "billing_address" in {REDACTED}/cube/classes/cubecart.class.php on line 1222
[23-Feb-2023 21:32:11 Europe/London] PHP Warning:  Trying to access array offset on value of type null in {REDACTED}/cube/classes/cubecart.class.php on line 1222
[23-Feb-2023 21:32:15 Europe/London] PHP Warning:  Undefined array key "options_identifier" in {REDACTED}/cube/classes/cart.class.php on line 1225
[23-Feb-2023 21:32:15 Europe/London] PHP Warning:  Undefined variable $missing_field in {REDACTED}/cube/classes/cubecart.class.php on line 1023
[23-Feb-2023 21:32:15 Europe/London] PHP Warning:  Undefined variable $error_messages in {REDACTED}/cube/classes/cubecart.class.php on line 1155
[23-Feb-2023 21:32:15 Europe/London] PHP Warning:  Undefined array key "packagingWeight" in {REDACTED}/cube/modules/shipping/All_In_One_Shipping/shipping.class.php on line 40
[23-Feb-2023 21:32:15 Europe/London] PHP Warning:  Undefined array key "base_folder" in {REDACTED}/cube/classes/cubecart.class.php on line 2323
[23-Feb-2023 21:32:16 Europe/London] PHP Warning:  Undefined array key "retrieve" in {REDACTED}/cube/classes/order.class.php on line 674
[23-Feb-2023 21:32:16 Europe/London] PHP Warning:  Undefined array key "options_identifier" in {REDACTED}/cube/classes/order.class.php on line 1355
[23-Feb-2023 21:32:16 Europe/London] PHP Warning:  Undefined array key "options" in {REDACTED}/cube/classes/order.class.php on line 1373
[23-Feb-2023 21:32:16 Europe/London] PHP Warning:  Undefined array key "options_identifier" in {REDACTED}/cube/classes/order.class.php on line 1355
[23-Feb-2023 21:32:16 Europe/London] PHP Warning:  Undefined array key "options" in {REDACTED}/cube/classes/order.class.php on line 1373
[23-Feb-2023 21:32:16 Europe/London] PHP Warning:  Undefined array key "iframe" in {REDACTED}/cube/modules/gateway/SagePay/gateway.class.php on line 191
[23-Feb-2023 21:32:16 Europe/London] PHP Warning:  Undefined array key "phone" in {REDACTED}/cube/modules/gateway/SagePay/gateway.class.php on line 238
[23-Feb-2023 21:32:26 Europe/London] PHP Warning:  Undefined array key "options_identifier" in {REDACTED}/cube/classes/cart.class.php on line 1225
[23-Feb-2023 21:32:26 Europe/London] PHP Warning:  Undefined array key "packagingWeight" in {REDACTED}/cube/modules/shipping/All_In_One_Shipping/shipping.class.php on line 40
[23-Feb-2023 21:32:26 Europe/London] PHP Warning:  Undefined array key "base_folder" in {REDACTED}/cube/classes/cubecart.class.php on line 2323
[23-Feb-2023 21:32:36 Europe/London] PHP Warning:  Trying to access array offset on value of type bool in {REDACTED}/cube/classes/cubecart.class.php on line 658
[23-Feb-2023 21:32:36 Europe/London] PHP Warning:  Trying to access array offset on value of type null in {REDACTED}/cube/classes/cubecart.class.php on line 658
[23-Feb-2023 21:32:36 Europe/London] PHP Warning:  Trying to access array offset on value of type bool in {REDACTED}/cube/classes/cubecart.class.php on line 694
[23-Feb-2023 21:32:36 Europe/London] PHP Warning:  Trying to access array offset on value of type null in {REDACTED}/cube/classes/cubecart.class.php on line 695

pp1.jpg

pp2.jpg

Link to comment
Share on other sites

I don't like the "Undefined array key 'base_folder'" messages.

PayPal Commerce uses a "hook" to add an element to an array that will eventually construct a file system path to the PayPal module.

The name of that "hook", found in /modules/plugins/paypal_commerce/hooks/ is class.cubecart.display_gateways.php. So, make sure that this file exists.

Next, using a database utility, directly look at the database table CubeCart_hooks. Find all rows that have paypal_commerce as the value in the 'plugin' column. There should be 14 rows for paypal_commerce. Make sure one of those 14 rows has class.cubecart.display_gateways in the 'trigger' column, and that it has a 1 in the 'enabled' column.

 

Link to comment
Share on other sites

7 hours ago, bsmither said:

I don't like the "Undefined array key 'base_folder'" messages.

PayPal Commerce uses a "hook" to add an element to an array that will eventually construct a file system path to the PayPal module.

The name of that "hook", found in /modules/plugins/paypal_commerce/hooks/ is class.cubecart.display_gateways.php. So, make sure that this file exists.

Next, using a database utility, directly look at the database table CubeCart_hooks. Find all rows that have paypal_commerce as the value in the 'plugin' column. There should be 14 rows for paypal_commerce. Make sure one of those 14 rows has class.cubecart.display_gateways in the 'trigger' column, and that it has a 1 in the 'enabled' column.

 

The file exists in the correct folder, with permissions set to 0644. In the DB table the relevant row appears exactly as you suggest it should be.

 

pp1.gif

Link to comment
Share on other sites

I am not able to determine where there may be any other points of interest to examine to explain why the PayPal Commerce is not showing as a choice at checkout.

That 'base_folder' error message is very concerning, but I cannot determine what could be triggering that error.

We could begin some complex troubleshooting.

 

Link to comment
Share on other sites

56 minutes ago, bsmither said:

I am not able to determine where there may be any other points of interest to examine to explain why the PayPal Commerce is not showing as a choice at checkout.

That 'base_folder' error message is very concerning, but I cannot determine what could be triggering that error.

We could begin some complex troubleshooting.

 

It's very odd indeed, given that the rest of the site and admin pages appear to be functioning as they should. While the number of sales we get through the site is not huge, in the long run we probably are losing some customers who prefer PayPal, so it would be as well to get it working if we can. Any suggestions for how to proceed next would be welcome.

Link to comment
Share on other sites

18 minutes ago, RobinSomes said:

It's very odd indeed, given that the rest of the site and admin pages appear to be functioning as they should. While the number of sales we get through the site is not huge, in the long run we probably are losing some customers who prefer PayPal, so it would be as well to get it working if we can. Any suggestions for how to proceed next would be welcome.

In a fit of curiosity I have just disabled the paypal_commerce plugin, and enabled the old PayPal Standard Payment Gateway. Now that *does* result in the PayPal option appearing at the bottom of the checkout page, maybe because it's a gateway, not a plugin. 

The only other plugin I have is Noodleman's Product Addons, which rarely gets used now, since there's a dwindling number of products that require it, and they almost never sell. So, if *that* were not working, I probably wouldn't notice from one year to the next.

All of which leads me to ask, is there an option somewhere in the Admin interface, or elsewhere buried deep in php, to disable all use of plugins? Perhaps my chubby fingers have inadvertently unticked a checkbox?

Edited by RobinSomes
Link to comment
Share on other sites

Please bring up for editing the file /includes/global.inc.php.

Before the very last line (the last line being ?>) you might find:

$glob['safe_mode'] = false; // Set to true to disable hooks and code snippets, 'hooks' to disable code hooks and 'snippets' to disable code snippets

In order to actually make changes, you may have to first make the file not read-only.

Then change the false to true. Save.

This will inhibit all hooks and code snippets. An admin can still (I think) make changes to the plugin's settings (meaning ionCube encoded modules can still cause problems if the encoder and the version of PHP are mismatched), but however the plugin may affect the operation of CubeCart - all that is inhibited.

Edited by bsmither
Link to comment
Share on other sites

17 minutes ago, bsmither said:

Please bring up for editing the file /includes/global.inc.php.

Before the very last line (the last line being ?>) you might find:

$glob['safe_mode'] = false; // Set to true to disable hooks and code snippets, 'hooks' to disable code hooks and 'snippets' to disable code snippets

In order to actually make changes, you may have to first make the file not read-only.

Then change the false to true. Save.

This will inhibit all hooks and code snippets. An admin can still (I think) make changes to the plugin's settings (meaning ionCube encoded modules can still cause problems if the encoder and the version of PHP are mismatched), but however the plugin may affect the operation of CubeCart - all that is inhibited.

This does bring up one other observation. I have just tried to examine the settings for the Product Addons plugin, and got an error message saying Site error: the ionCube PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking. This reminds me of the other reason Product Addons isn't being used.

The server is running PHP 8.0.x, for which the ionCube extension is not available, and possibly never will be. We have to run PHP 8 (rather than 7.4 as we were before) because the other site under that domain is based on Joomla, which requires it. 

So, could that affect the running of paypal_commerce too?

I'll try your suggestion shortly.

I've just checked the installation of PHP 8.1 on my server to see if that does support ionCube, and it doesn't, so I'd have to ask the ISP if they can install it (and possibly other extensions needed). But it's now 11.15 on a Friday night, so my patience for doing that is limited. Maybe later. 

Edited by RobinSomes
Link to comment
Share on other sites

3 minutes ago, bsmither said:

Not having ionCube available for your hosting environment will not affect the operation of the PayPal Commerce module.

 

Thank you. I'll leave that as it is for the moment, then. Meanwhile, I've just tried your suggestion for editing /includes/global.inc.php . $glob['safe_mode'] was *already* set to true. Resetting it to 'false' hasn't produced any noticeable change in the site or the admin pages. 

error_log still contains the line

[24-Feb-2023 23:24:18 Europe/London] PHP Warning:  Undefined array key "base_folder" in /{REDACTED}/piscesconservation.com/cube/classes/cubecart.class.php on line 2323

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...