Here's the fix for the issues I've seen posted here so far, and have experienced personally. This runs just fine on PHP 5.x and 7.x, and Blesta 4.0. This requires some DB modifications and file changes so if you don't feel comfortable doing that you can either reach out to me for assistance or post here.
The below is from a fresh install of the plugin. YMMV but I hope this at least helps bridge the gap between those who can and can't upgrade Blesta over a plugin.
* When creating ticket, says ticket was created but no ticket actually shows
* No tickets also show in admin panel
* No ticket # is generated
ERROR: ERROR 1364 (HY000): Field 'name' doesn't have a default value
The same error occurred for the other 3 columns as well.
CAUSE: The INSERT SQL is not using these columns, but they are marked as NOT NULL in the db, which is blocking the SQL from executing successfully.
FIX:
alter table support_ticketspro modify name varchar(255) null;
alter table support_ticketspro modify reading varchar(255) null;
alter table support_ticketspro modify readed varchar(255) null;
alter table support_ticketspro modify cfields varchar(255) null;
* Badge not rendering
CAUSE: On the initial load of pages with the tab, there's validation to ensure that the user is a client or staff, where as the $this->{type} property does not exist. Which is causing PHP to throw an error. An alternative fix is to have property_exists($this, {type}) before the $this->{type} but seeing as how everyone is wanting to move to 4.x I decided to ignore that solution.
FIX: Edit file support_managerpro_plugin.php
Line 1209: remove "&& $this->staff" (property does not exist anymore on class)
Line 1233: remove "&& $this->client" (property does not exist anymore on class)
* Enabling this causes extra padding at top of page due to jQuery to get the ticket count due to response being full HTML page instead of expected single line, so instead of just rendering the badge data it's rendering a full HTML page CAUSE: I'm not really sure what the cause is here. It's basically an HTML page without any real content, but it was breaking the design.
But, since this was an Ajax call being made anyways I don't know why the original author just did not go this route to begin with. The method has existed since Blesta 3.x
FIX: Edit file support_managerpro_plugin.php
Line 1218: change newRowCount.trim() to newRowCount.content.trim()
Line 1223: repeat change above
Line 1242: repeat change above
Line 1247: repeat change above
Edit file controllers/admin_tickets_count.php
At end of index() method add this: return $this->renderAjaxWidgetIfAsync(true);
Edit file controllers/client_tickets_count.php
At end of index() method add this: return $this->renderAjaxWidgetIfAsync(true);