add_action in einem benutzerdefinierten Plugin

Ich habe ein Plugin erstellt, um ein zu erstellen, wenn der Cookie FALSE ist. Eigentlich funktionierte das, aber als ich das Cookie erstellen wollte, hieß es, dass mein Header bereits gesendet wurde.

Dann hatte ich den Code add_action('init', 'newsletterSuscriber'); aber es hat immer noch einen Fehler wie diesen zurückgegeben.

Warnung: call_user_func_array () erwartet, dass Parameter 1 ein gültiger Callback ist, function ‘newsletterSucriber’ nicht gefunden oder Name der ungültigen function in /PATH/wp-includes/plugin.php in Zeile 503

Plugin-Code

  class Okidoo_Newsletter_Suscriber { /** * Initializes the plugin. * * To keep the initialization fast, only add filter and action in the constructor. */ public function __construct() { add_shortcode( 'custom-suscribe-form' , array( $this, 'render_suscribe_form') ); add_action( 'init', 'newsletterSuscriber' ); } /** * A shortcode for rendering the login form. * * @param array $attributes Shortcode attributes. * @param array $content The text content for shortcode. Not used. * * @return string The shortcode output */ public function render_suscribe_form( $attributes, $content = null ) { // Parse shortcode attributes $default_attributes = array( 'show_title' => false ); $attributes = shortcode_atts( $default_attributes, $attributes ); $show_title = $attributes['show_title']; // Pass the redirect parameter to the WordPress login functionnality : by default, // don't specify a redirect, but if a valid redirect URL has been passed as // request parameter, use it. $attributes['redirect'] = ''; // Render the login form using an external template. return $this->get_template_html( 'subscription_form', $attributes ); } /** * Render the contents of the given template to a string and returns it. * @param string $template_name The name of the template to render (without .php) * @param array $attributes The PHP variables for the template * * @return string The contents of the template. */ private function get_template_html( $template_name, $attributes = null ) { if ( ! $attributes ) { $attributes = array(); } ob_start(); do_action( 'personalize_div_before_' . $template_name ); require( 'templates/' . $template_name . '.php' ); do_action( 'personalize_div_before_' . $template_name ); $html = ob_get_contents(); ob_end_clean(); return $html; } public function newsletterSuscriber() { if ( ! isset($_COOKIE['newsletter_suscriber'])) { $path = parse_url(get_option('siteurl'), PHP_URL_PATH); $host = parse_url(get_option('siteurl'), PHP_URL_HOST); $expiration = time() + 3600; setcookie('newsletter_suscriber', 'newsletter_suscriber', $expiration, $path, $host); } } } // Initialize the plugin $initialisation = new Okidoo_Newsletter_Suscriber(); 

Danach habe ich versucht, die add_action auf mey functions.php Datei in der Vorlage und auch in der Plugin-Datei direkt zu platzieren.

Jeder kann mir sagen, ob es möglich ist:

  1. Führen Sie ein Plugin mit der Aktion init aus;
  2. Was mache ich falsch, wenn Punkt 1 wahr ist?

Danke

Solutions Collecting From Web of "add_action in einem benutzerdefinierten Plugin"