2013-08-01 2 views
1

В моем проекте wordpress я хочу запустить mysql-запрос на странице благодарности, когда пользователь перенаправляется на него только один раз. Но когда пользователь обновляет его, он не должен запускаться. Я создал переменную сеанса и сделал это ниже. Но это не сработало. Может кто-нибудь мне помочь.не может автоматически увеличить значение сеанса

session_start(); 
$_SESSION['countval']=0; 

if($_SESSION['countval']==0){ 

    $wpdb->insert('wp_user_points', 
        array('user_id' =>$current_user->ID , 
         'order_id'=>$order_id, 
         'product_sku' =>$new_sku, 
         'pv'=>$points, 
         'added_on'=>date("Y-m-d H:i:s"), 
         'payment_method'=>$order->payment_method_title, 
         'payment_statues'=>'pending' 
         ) 
       ); 
    $_SESSION['countval']++; 

} 
+0

разве это ('$ _SESSION [ 'countval'] = 0; ') всегда делает это 0 –

+0

так, если я не присвоит значение сессии он будет работать? – koli

+0

Я думаю, вам нужно установить только один раз (в зависимости от того, что вы хотите сделать). Кстати, вы можете попробовать, что говорит DevZer0, так как я думаю, что он почти что вы хотите –

ответ

1

Потому что вы установили $_SESSION['countval']=0; на первой линии. Используйте этот код:

session_start(); 
if(!isset($_SESSION['countval'])) 
    $_SESSION['countval']=0; 

if($_SESSION['countval']==0){ 

    $wpdb->insert('wp_user_points', 
        array('user_id' =>$current_user->ID , 
         'order_id'=>$order_id, 
         'product_sku' =>$new_sku, 
         'pv'=>$points, 
         'added_on'=>date("Y-m-d H:i:s"), 
         'payment_method'=>$order->payment_method_title, 
         'payment_statues'=>'pending' 
         ) 
       ); 
    $_SESSION['countval']++; 
    } 
+0

О, я слишком хорош в форматировании сообщения ..... :) –

+0

@ NullPoiиteя Извините, я просто копирую с вопроса. ;) – ops

+0

пожалуйста, не извиняйтесь. Если ответ полезен, чем его классный .. и я просто шутил :) –

2

Вы, кажется, сбрасываете счетчик каждый раз. вместо этой строки кода $_SESSION['countval']=0;

удостоверьтесь, что вы установили ее только один раз, проверив ее, если она уже установлена.

if (!isset($_SESSION['countval'])) $_SESSION['countval']=0; 
+0

. Я попробую. – koli

Смежные вопросы