Уведомления администратора Wordpress - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть вызов 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'));не запускается после обновления продукта.Может кто-нибудь указать мне правильное направление для обработки ошибок на стороне администратора?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...