добавить новую запись массива в функцию внутри метода в другом классе

#php #oop

#php #ооп

Вопрос:

Не уверен, что мой вопрос правильный, но чего я пытаюсь достичь, так это добавить cc в wp_mail, который находится внутри метода другого класса.

 class Hello_World {

  function __construct () {
    ....
  }

  function dispatch_email() {
    $to = 'To: email@email.com';
    $subject = 'Subject';
    $body = 'Content';
    $header[] = 'From: from@email.com';
    $header[] = 'Content-Type: text/html; charset=UTF-8';

    wp_mail( $to, $subject, $body, $header );
  }

}
  

как я могу добавить новый заголовок [] в wp_mail из моего нового класса? я пробовал ниже, но не работает..

 $Hi_World = new Hello_World;
$Hi_World->dispatch_email()->header[] = 'Cc: new@email.com';
  

Комментарии:

1. Вы не вернули ‘ wp_mail в своей функции?

2. как я могу это сделать?

Ответ №1:

Я нахожусь на своем телефоне, поэтому не могу протестировать, но, если вы добавите параметр в свой конструктор, вы можете достичь своих целей с помощью чего-то вроде этого:

 class Hello_World {

  function __construct ($headers) {
    this->headers = $headers;
    ....
  }

  function dispatch_email() {
    $to = 'To: email@email.com';
    $subject = 'Subject';
    $body = 'Content';
    $header[] = 'From: from@email.com';
    $header[] = 'Content-Type: text/html; charset=UTF-8';
    $fullHeaders = array_merge($header, this->headers);

    wp_mail( $to, $subject, $body, $fullHeaders );
  }
}

$Hi_World = new Hello_World(['Cc: new@email.com']);
$Hi_World->dispatch_email();