PHP-Error: Class name must be a valid object or a string
-
Hi there,
I have a WordPress-System, running version 5.4.2 and the plugin “Notification” (v. 7.). I have added the following code to my functions.php
do_action( 'notification/init' ); /** To load the plugin - without this line there will be a fatal error caused by not-finding the class */ /** * Custom trigger class - Defining the class */ class CustomTrigger extends \BracketSpace\Notification\Abstracts\Trigger { /** * Constructor */ public function __construct() { // 1. Slug, can be prefixed with your plugin name. // 2. Title, should be translatable. parent::__construct( 'myplugin/custom_trigger', __( 'Custom Trigger title', 'textdomain' ) ); // 1. Action hook. // 2. (optional) Action priority, default: 10. // 3. (optional) Action args, default: 1. // It's the same as add_action( 'any_action_hook', 'callback', 10, 2 ) with // only difference - the callback is always action() method (see below). $this->add_action( 'any_action_hook', 10, 2 ); // 1. Trigger group, should be translatable. // This is optional, Group is displayed in the Trigger select. $this->set_group( __( 'My Triggers', 'textdomain' ) ); // 1. Trigger description, should be translatable. // This is optional, Description is displayed in the Trigger select. $this->set_description( __( 'Fires when a page with "myparam" parameter is visited', 'textdomain' ) ); } /** * Assigns action callback args to object * Return <code>false</code> if you want to abort the trigger execution * * You can use the action method arguments as usually. * * @return mixed void or false if no notifications should be sent */ public function action( $param_one, $param_two ) { /** * This is a method callback hooked to the action you've added in the Constructor. * * Two important things which are happening here: * - $this->callback_args is a numeric array containing all the callback parameters * if you want to treat them as an array * - if you want to abort Trigger execution, you must return false here */ // If the second parameter ($process in our action) is false then abort, no carriers will be processed. if ( false === $param_two ) { return false; } // We can assign any property here, whole object will be accessible in Merge Tag resolver. $this->param_value = $param_one; } /** * Registers attached merge tags * * @return void */ public function merge_tags() { /** * In this method you can assign any Merge Tags to the trigger. * * To see what Merge Tags are available go to Notification plugin's core * and look in class/Defaults/MergeTag directory. */ $this->add_merge_tag( new \BracketSpace\Notification\Defaults\MergeTag\StringTag( [ // Slug (required), this will be used as {parametrized_url} value. // Don't translate this. 'slug' => 'parametrized_url', // Name (required), should be translatable. 'name' => __( 'Parametrized URL', 'textdomain' ), // Resolver (required), this can be a closure like below or function name // like: 'parametrized_url_resolver' or array( $this, 'parametrized_url_resolver' ). 'resolver' => function( $trigger ) { // Trigger object is available here, // with all the properties you set in action() method. return add_query_arg( 'source', $trigger->param_value, site_url() ); }, // Description (optional), should be translatable, default: ''. 'description' => __( 'Homepage URL with ?source= param', 'textdomain' ), // Example indicator (optional) // if true, then description will have "Example" label, default: false. 'example' => true, ] ) ); } } /** To register the new trigger */ add_action( 'notification/elements', function() { notification_register_trigger( new CustomTrigger() ); } );'When I am doing it like that I’ll get the following error:
Fatal error: Uncaught Error: Class name must be a valid object or a string in /../wp-content/plugins/notification/notification.php:88. From my point of view there in this file in line 88 there is the check of the version of the plugin.What I am doing wrong?
Thanks for your help.
Kind regards,
JulianThe page I need help with: [log in to see the link]
The topic ‘PHP-Error: Class name must be a valid object or a string’ is closed to new replies.