سلام.وقت بخیر. کدهای کلاس AjaxHandler رو بصورت زیر پیاده کردم:
<?php
namespace App\Classes;
class AjaxHandler
{
private $actions = [
'add_user',
'trunc_user',
];
public function __construct()
{
foreach ($this->actions as $action) {
add_action("wp_ajax_" . $action,$action);
add_action("wp_ajax_nopriv_".$action,$action );
}
}
}
new AjaxHandler();
ولی جالب اینجاست که در هنگام ایجکس و صدا زدن متد add_user کد 200 صادر میشه ولی در هنگام صدا زدن متد trunc_user با خطای 500Internal server error مواجه میشم(هر دو متد در تریت User هستند).علت چیه؟
کدها کلاس رو بصورت زیر بازنویسی کردم و تریت یوزر رو ضمیمه کردم مشکل رفع شد.ولی علت مشکل کدهای بالا رو متوجه نشدم
<?php
namespace App\Classes;
class AjaxHandler
{
use User; // ضمیمه کردن تریت یوزر
private $actions = [
'add_user',
'trunc_user',
];
public function __construct()
{
foreach ($this->actions as $action) {
add_action("wp_ajax_" . $action,[$this , $action]);
add_action("wp_ajax_nopriv_".$action, [$this , $action] );
}
}
}
new AjaxHandler();