Plugin could not be activated because it triggered a fatal error


(Alessio Fattorini) #1

Hi folks,
I installed and used the plugin until some weeks ago when during an update it break my blog :frowning:
Deactivated and de-installed it now I can’t install it anymore

public static function get_options() {
$options = []; <---- line 23

            $discourse_option_groups = get_option( 'discourse_option_groups' );
            if ( $discourse_option_groups ) {

That’s my record on mysql, I just removed it but… nothing :frowning:

| 32290 | discourse | a:19:{s:3:“url”;s:31:“http://community.nethserver.org”;s:7:“api-key”;s:64:“xxxxxx”;s:16:“publish-username”;s:12:“alefattorini”;s:16:“publish-category”;i:1;s:17:“full-post-content”;i:1;s:12:“auto-publish”;i:1;s:10:“auto-track”;i:1;s:18:“allowed_post_types”;a:1:{i:0;s:4:“post”;}s:22:“use-discourse-comments”;i:1;s:25:“existing-comments-heading”;s:0:"";s:12:“max-comments”;s:1:“5”;s:11:“min-replies”;s:1:“1”;s:9:“min-score”;s:1:“0”;s:15:“min-trust-level”;s:1:“1”;s:24:“bypass-trust-level-score”;s:2:“50”;s:21:“custom-excerpt-length”;s:2:“55”;s:22:“custom-datetime-format”;s:0:"";s:10:“login-path”;s:0:"";s:10:“sso-secret”;s:0:"";} | yes |

Any hint?


(Jay Pfaffman) #2

I think it’s because you have an old version of php.

You can either update php or change that to the old syntax,which is something like

$options = array();

(Alessio Fattorini) #3

Thanks but I have another error at line 165 the last one ;-(


(Jay Pfaffman) #4

you can’t just delete the one,you have to declare the array. Think that there is another one somewhere too. I did it last week, and don’t remember exactly. I think I got it to work, but can’t quite remember. I will try to check when I get to the office.


(Simon Cossar) #5

What PHP version do you have on your server? I can update the plugin to support php 5.3.


(Alessio Fattorini) #6

Sorry, standard CentOS 6 php-5.3.3


(Simon Cossar) #7

I think the only issue the plugin has with php 5.3 is that it’s creating an array with []. That can be changed. I’ll update it later today or early tomorrow.


(cpradio) #8

Isn’t PHP 5.3 EOL? Might be wiser to have the user upgrade their PHP so they are still getting security patches.


(Jay Pfaffman) #9

I’m pretty sure that’s right, @Simon_Cossar. I had this problem last week and I think that I just changed two array declarations and that it worked after that. (OTOH, I’ve configured a whole bunch of stuff and it could be that there was something else wrong and I gave up.)

That’s definitely true. In my case, I’m working on moving off of my old Ubuntu 12.04 server. I’m sure it’s going to happen any day now. :slight_smile:


(Simon Cossar) #10

Yes it looks like it is: PHP: Unsupported Branches. I haven’t been testing against it. I can change the array declarations anyway.


(Jay Pfaffman) #11

I was going to suggest that, but perhaps it’s better that only people who can fix that code such that it works with PHP5.3 be able to use it. :slight_smile:

Or even just put a “VERSION X required” test somewhere.


(Simon Cossar) #12

I think the people who are saying that the plugin shouldn’t support PHP versions < 5.4.0 are right. I’ve just updated the plugin and added a check for the PHP version to the plugin’s activation function. Attempts to activate the plugin with an unsupported PHP version will be halted.

I’ve also added a couple of notes to the plugin’s readme to say that it requires php >=5.4.0.

@alefattorini if you are unable to update your PHP version and need a hand getting the plugin running on php-5.3.3, get in touch with me.


(Matt Palmer) #13

Assuming that the packages being used are those provided by the OS vendor, that version of PHP will get security updates, based on backported patches of security vulnerabilities provided for later releases.


(Alessio Fattorini) #14

Thanks Simon, I appreciate it. Let me know how can I edit the plugin to adapt to my php version


(Simon Cossar) #15

Try this: https://github.com/scossar/wp-discourse/tree/beta-php-5.3

It passes the php-5.3 codesniffer. You can click on the ‘Clone or download’ button on that page to download a zip file.


(Ben Word) #16

This is the best solution. Even if it’s a simple change to allow support for PHP 5.3, it’s a really bad idea to encourage any usage of it whatsoever.

PHP 5.3 has been unsupported for over 2 years. PHP 5.5 is EOL. PHP 5.6 support ends in 1 month.


(Alessio Fattorini) #17

Sorry for the late response, it works like a charm :slight_smile:
Thanks so much, I owe you one!


(Simon Cossar) #18

Note: this repo was created to help people with existing wp-discourse setups that broke when updating from a previous version of the plugin. It won’t be receiving any updates!

If your WordPress installation is using a php version of less than 5.4, contact your hosting provider to see what can be done about upgrading the version.