With the latest update of the plugin, it shows “Missing Widget” for a custom built widgets which were working fine prior to the update. Is this some bug with the plugin or do i need to make fix in my codes?
Missing Widget Issue with latest update of the plugin
This is our free support forum. Replies can take several days. If you need fast email support, please purchase a SiteOrigin Premium license.
Hi prabin
Please, take a look at the way you’re adding your widgets. Here is the change that could have impacted your plugin or theme.
https://github.com/siteorigin/siteorigin-panels/commit/2a6179a04ac88ce712e49bae6bde7a854b050c54
This was done to resolve:
https://github.com/siteorigin/siteorigin-panels/issues/578
https://github.com/siteorigin/siteorigin-panels/issues/509
Hi,
I am using the default WordPress techniques to add the widget. For the reference, this is the base code that i am using to create the widget https://www.wpbeginner.com/wp-tutorials/how-to-create-a-custom-wordpress-widget/
Now what is happening is that the widgets are working fine in the Widget page. But in post and pages using SiteOrigin Pagebuilder, it is showing Missing Wigdet title for the widgets that were added previously. Although when i click and get inside the widget form, its working fine.
On adding new widget, it is still working and showing the correcting widget title but instead of description, it is showing unique id. I have added a image for reference.
The image html is not showing in the above thread so here is the image link http://oi63.tinypic.com/121svi9.jpg
Hi prabin, I rolled Page Builder back to the previous version, 2.9.7, I then added the WP Beginner demo widget via a plugin and inserted it into a Page Builder, I changed the title, the only field available in the demo. I then upgraded Page Builder to 2.10.0 and all still seems normal in Page Builder, the widget is still displayed as it was previously.
Until you’ve found a resolution, my recommendation would be to ask users contacting you to roll back to Page Builder 2.9.7 using WP Rollback plugin which makes it really easy. Of course encourage users to make a backup first via their hosting control panel, Duplicator or something else like All-in-One WP Migration.
Please, send us your widget source code via PasteBin or any similar location you prefer, Alex or Braam can take a look for us on Monday when they’re back.
Hi,
If you can send me your email address, i can set you a temporary login in my website so that you can check.
Thanks
Hi Prabin, we could log in but I’m not quite following why the source code for that functionality can’t be sent to us. Did you create the widgets? If you did, you’ll know where the widget functions are and can copy them. You could upload a file to Dropbox and delete it later, that’s just one way. You could create a GitHub Gist or use PasteBin. Happy to take a look but ideally, you’ll need to send us the widget creation code so we can see where the problem is. The WP Beginner tutorial on its own works so something else is the issue.
Hi,
What i figured was that on registering widget, the name of the class that extends WP_Widget should match completely in letter case with the registered id. Like in the below example if i use “wpb_widget” id to register the widget then the class name that extends WP_Widget should be same in letter case. If i use Class Naming approach (ie capital 1st letter) “Wpb_Widget”, it does not work.
But interestingly it used to work with the previous version (below 2.10.0) of Site origin and still working in the current version for newly added widgets. But the problem only exists when the widget is added already and then the Site Origin PageBuilder is updated to 2.10.0
// Register and load the widget
function wpb_load_widget() {
register_widget( ‘wpb_widget’ );
}
add_action( ‘widgets_init’, ‘wpb_load_widget’ );
// Creating the widget
class wpb_widget extends WP_Widget {}; // This works fine
class Wpb_Widget extends WP_Widget {}; // This works fine
*class Wpb_Widget extends WP_Widget {}; // This does not work on updating SiteOrigin Pagebuilder plugin
Hi Prabin,
Thanks. Unfortunately, I can’t seem to replicate the class issue you’ve outlined. Can you please provide me with the full widget code you’re using so I can run some tests using that?
I created a test plugin to test this. You can find that here.
Hi,
Here is the code https://codeshare.io/5X4w4Y
And here is the video of what happens http://s000.tinyupload.com/index.php?file_id=04328758487962352722
Thanks
Hi Prabin,
Thanks. Did you make a change towards the end of the video or did the issue occur when you saved? Does this issue occur with the provided PHP?
At the end, it updated the Site Origin pagebuilder plugin to 2.10.0 and then refreshed the page. On refreshing the page, it shows Missing Widget.
And i have not tested with the code that you sent. The video executed the code here https://codeshare.io/5X4w4Y it
Hi Prabin,
Thanks. I suspect there’s an issue with the widget code you’re using as the PHP I provided is also misnamed and it’s working without issue for me. Can you please try the provided PHP?
Hi,
Tested with your code as well.. Same Problem. It shows missing widget.
Hi Prabin,
That’s odd. The widget code I provided code worked without issue for me. During your tests, are only SiteOrigin plugins active? If not, please try disabling all non-SiteOrgin plugins and changing to a default theme. Doing this will allow us to rule out any conflicting code.
Also, can you please clarify what version of PHP you’re using? If you’re not sure, please reach out to your hosting provider.
Hi,
I am not sure if you have understood on which occasion the problem occurs. Here i will try to explain once again for the final time. Here is the process to replicate the issue.
1. Use Rollback plugin to rollback plugin to version prior to 2.10.0
2. Add the code here https://codeshare.io/5X4w4Y in functions.php
3. Now, create a new page with site origin page builder. Add the widget “WPBeginner Widget” and save it.
4. Now update the plugin to 2.10.0 and then refresh the page where you added the widget. It will now show missing widget.
And for your information, the PHP version i am using is 7.1.8 and all the plugins were disabled during the process.
Hi Prabin,
I can confirm that I followed those steps. I tried both a manual and automatic rollback (using WP Rollback). I’m using PHP 7.3.1 but I’ll try using PHP 7.1.8 to see if that helps. Andrew mentioned he also tried this and it didn’t occur for him either.
Hm. I just noticed that you’re adding the code you provided to your theme. While it likely not related but, does this issue occur if you use the PHP I provided as a plugin? The provided PHP is already set up to be used a plugin – just save that PHP into a .php file in your plugins directory and activate it in WordPress.
Yes, it happens with the code you provided as well when used as plugin. Here is the screencast video https://ufile.io/xvz6l
Hi Prabin,
Thanks for trying. I’m really not sure why we’re not able to replicate this. Can you please enable WP_DEBUG and WP_DEBUG_LOG and then try this again? Once the issue occurs, please check for a debug.log file found in the wp-content directory. If that file is present, please reply with the contents of that file.
Hi,
I am not getting any error in debug.log file. And this problem is also showing with some of the client websites. Its not just at my end.
Hi Prabin,
Would it be possible for you to send us a copy (using Duplicator) of the affected website so we can run some tests against it?
Please give me your email address. I will create a temporary login for you in the live server.
Thanks
Hi Prabin,
Would it be possible for you to create a temporary admin account for us so we can log in and take a look? Ideally, can we create a backup? While viewing the website should help we really need to run tests to the code itself to work out what’s going on.
This is a private message.
Done
Hi,
Did you get time to check?
Hi Prabin
When you create an account and enable the option to send login details to the new user, that email should print here on this thread as a private message. You’ll be able to see it too. It doesn’t look like it has arrived. We could reset the password but we don’t have a URL to go to.
I don’t see option for a private message.
Here is the url of the website https://hashcreation.com/wp-admin/ . You can reset the password.
Hi Prabin,
Unfortunately, I tried resetting the password a few days ago and we didn’t receive an email from your website – you will receive notification when we receive an email. I just tried again and your website is reporting that the created user account no longer exists. Can you please recreate the account?
If you need to privately email us, you can use the provided email.
This is a private message.
This is a private message.