Попробуйте передать класс по ссылке:
public function adder() {
add_action('wp_ajax_mailerformValidation', array(&$this, 'emailer_form_sender')); // Call when user logged in
add_action('wp_ajax_nopriv_mailerformValidation', array(&$this, 'emailer_form_sender')); // Call when user in not logged in
add_filter( 'some_event_action',array(&$this, 'emailer_form_sender') );
}
Так что вместо $this
это &$this
подробнее
Также имейте в виду, что для передачи переменных вам необходимо присвоить их классу. Так что если вы хотите получить доступ к $options
из конструктора. Вы также должны установить их для класса, поэтому в верхней части формы
public function form( $instance ) {
$title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
$message = ! empty( $instance['message'] ) ? $instance['message'] : '';
$to_email = ! empty( $instance['to_email'] ) ? $instance['to_email'] : '';
$subject = ! empty( $instance['subject'] ) ? $instance['subject'] : '';
$this->title = $title;
$this->message = $message;
$this->to_email = $to_email;
$this->subject = $subject;
// the rest of the form
}
Теперь вы можете получить доступ к переменным в методе emailer_form_validation()
, используя $this->message
.
Чтобы увидеть все переменные, установленные в классе, просто var_dump($this)
и проверьте вывод.