У меня есть вызов ajax, который проверяет данные продукта, а затем обновляет их на основе возвращаемого json. Я хочу добавить уведомление администратора в случае ошибки или успешного обновления продукта.
PHP
public function syncSingleProduct(){
try{
check_ajax_referer( '_wpnonce', 'nonce' );
$ean = $_POST['ean'];
$product_id = $_POST['product_id'];
$response = self::curlRequest($ean);
$product_data = json_decode($response);
if( $product_data !=null || $product_data !=''){
//Update product//
$product = wc_get_product( $product_id );
$product->set_short_description( $product_data->shortDesc);
$product->save();
}else{
add_action( 'admin_notices', array( 'NartaNexxus', 'product_data_not_found' ) );
}
}catch(Exception $e){
}
exit;
}
public function product_data_not_found()
{
$message = __( 'product not found' );
self::narta_admin_message( $message, 'error notice is-dismissible' );
}
private function narta_admin_message( $message, $class ) {
?>
<div class="<?php echo esc_attr( $class ); ?>">
<p>
<span style="display: block; margin: 0.5em 0.5em 0 0; clear: both;">
<?php echo wp_kses( $message, wp_kses_allowed_html( 'post' ) ); ?>
</span>
</p>
</div>
<?php
}
AJAX
$('.sync_single_product').on('click',function(){
var ean = $(this).data('product_ean');
var product_id = $(this).data('product_id');
var data = {
action : 'sync_product',
nonce : nartajs.nonce,
ean : ean,
product_id : product_id
}
$.ajax({
url : nartajs.ajaxurl,
dataType : "json",
method : "POST",
cache : false,
data : data,
success : function(response){
console.log(response);
}
});
});
add_action ('admin_notices', массив ('NartaNexxus', 'product_data_not_found'));не запускается после обновления продукта.Может кто-нибудь указать мне правильное направление для обработки ошибок на стороне администратора?