#php #laravel #wordpress
Вопрос:
Я пытаюсь отправить электронное письмо со списком компаний, которые имеют статус ожидающих или ожидающих.
Этот список уже собран в следующей функции:
public static function getCompaniesAwaitingCheck()
{
$awaitingChangeApproval = self::getAwaitingChangeApproval();
$awaitingPublication = self::getAwatingPublication();
return array_merge($awaitingChangeApproval, $awaitingPublication);
}
Теперь я хочу использовать эту функцию, чтобы отправить электронное письмо. Я сделал для этого отдельный класс ( AdminPendingApprovalNotification.php
)
В нем есть следующая функция:
public function notifyPendingApproval()
{
$dailyClaimMailTitle = get_field("daily_claim_overview_mail_title", 'options');
$dailyClaimMailText = get_field('daily_claim_overview_mail_text', 'options');
$dailyClaimMailAddress = get_field('daily_claim_overview_mail', 'options');
$company = new Company();
$pendingCompany = $company->getCompaniesAwaitingCheck();
wp_mail(
$dailyClaimMailAddress,
ecs_get_template_part('views/email/template', [
'title' => $dailyClaimMailTitle,
'text' => $dailyClaimMailText, $pendingCompany,
], false),
['Content-Type: text/html; charset=UTF-8']
);
}
Когда dd($pendingCompany);
я получаю сообщение об ошибке: PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function ModelsModel::__construct(), 0 passed in Emails/AdminPendingApprovalNotification.php on line 16 and exactly 1 expected
строка 16: $company = new Company();
К сожалению, не могу заставить его работать, я новичок, буду признателен за некоторую помощь. Спасибо!
Комментарии:
1. Что именно не работает? Как это связано с WordPress или Laravel?
2. Каковы названия двух классов, которые вы упомянули в своем вопросе?
3. @NicoHaase Использует WordPress и Laravel. Когда
dd($pendingCompany);
я получаю сообщение об ошибке:PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function ModelsModel::__construct(), 0 passed in Emails/AdminPendingApprovalNotification.php on line 16 and exactly 1 expected
4. Что вы пытались сделать, чтобы решить эту проблему? Вы не поделились строкой 16 данного класса
5. Попробуйте
Company::getCompaniesAwaitingCheck()
, но также прочитайте о том, как и когда использовать статику.
Ответ №1:
Ваш метод getCompaniesAwaitingCheck
статичен, поэтому вы должны называть его так:
$pendingCompany = Company::getCompaniesAwaitingCheck();
Произошла ошибка, поскольку вашему Company
классу требуются аргументы в __construct
методе, которые вы не предоставили.