Обновление мета пользователя через Ajax - PullRequest
0 голосов
/ 26 июня 2018

Может кто-нибудь сказать, пожалуйста, что я здесь не так делаю? У меня есть функция ajax, которая запускается каждые несколько секунд и в основном проверяет 2 таблицы базы данных, и если они не совпадают, обновите одну из таблиц базы данных, чтобы она соответствовала другой таблице базы данных, но по какой-то причине она не обновляет таблицу базы данных. Как мне отредактировать функцию, чтобы я мог добиться этого?

Вот список функций:

function tb_update_old_followers($user_id) {

    $followers = tb_get_follower_count($user_id);

    $old_followers = tb_get_old_follower_count($user_id);

    $response['new_new_followers'] = $followers;

    $response['old_new_followers'] = $old_followers;

    $response = json_encode( $response );

    echo $response;

    update_user_meta( $user_id, '_tb_old_followed_by_count', $followers + 1);

    die();
}
add_action('wp_ajax_tb_update_old_followers' , 'tb_update_old_followers');

function tb_get_follower_count( $user_id = null ) {

if ( empty( $user_id ) ) {
    $user_id = get_current_user_id();
}

$followed_count = get_user_meta( $user_id, '_tb_followed_by_count', true );

$count = 0;

if ( $followed_count ) {
    $count = $followed_count;
}

return (int) apply_filters( 'tb_get_follower_count', $count, $user_id );
}


function tb_get_old_follower_count( $user_id = null ) {

if ( empty( $user_id ) ) {
    $user_id = get_current_user_id();
}

$old_followed_count = get_user_meta( $user_id, '_tb_old_followed_by_count', true );

$old_count = 0;

if ( $old_followed_count ) {
    $old_count = $old_followed_count;
}

return (int) apply_filters( 'tb_get_old_follower_count', $old_count, $user_id );
}

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 27 июня 2018

Причина проста. Вы не определили user_id внутри функции tb_update_old_followers (). Просто сделай это, и это сработает.

function tb_update_old_followers() {
    $user_id=get_current_user_id();

    $followers = tb_get_follower_count($user_id);

    $old_followers = tb_get_old_follower_count($user_id);

    $response['new_new_followers'] = $followers;

    $response['old_new_followers'] = $old_followers;

    $response = json_encode( $response );

    echo $response;

    update_user_meta( $user_id, '_tb_old_followed_by_count', $followers + 1);
    die();
}
...