使用if / else语句的wpdb foreach循环

时间:2016-10-14 00:24:54

标签: php mysql wordpress

我知道这已被问过几百次,但我正在某个地方跳过一步,如果有人可以帮助我找出错误(或帮我写得更好),我会非常感激。

我正在使用wordpress / woocommerce。当用户购买产品时,我将以下内容插入表中:user_id,email,product_id,timestamp。

在每个产品页面上,我试图编写一些循环通过表格的代码来检查用户是否购买了相应的视频;如果是这样,它会显示视频,如果没有,它会显示一些文字。

我的逻辑有点过时,或者我做得太多了,但我正在尝试跟踪代码中的the example。现在,使用下面的代码,它将显示该页面的视频(因为我已经购买了它),但如果我还没有显示 else 文本;我将有6-9个视频,所以如果我能使这个代码更有效率,我很想学习如何。谢谢。这是我的代码:

global $wpdb;
$user_id = get_current_user_id();

$results = $wpdb->get_results("SELECT * FROM awdwp_webinar_orders WHERE user_id=" . $user_id . "");

if ( $results ) {
    foreach( $results as $result ) {
        $loop_uid = $result->user_id;
        $loop_pid = $result->product_id;?>

        if ( is_product(991) && $loop_uid == $user_id && $loop_pid == 991 ) {
            echo '<h2>' . get_the_title($id) . '<h2>';
            $the_video = get_field('video_file'); 
            //display video code
        } //end if
    } //end foreach 
} else {
    echo "please purchase";
}

2 个答案:

答案 0 :(得分:1)

解决这个问题:

global $product;
global $wpdb;
$id = $product->id;
$user_id = get_current_user_id();

$results = $wpdb->get_results("SELECT * FROM awdwp_webinar_orders WHERE product_id=" . $id . "");

if ( $results ) {
    foreach( $results as $result ) {
        $loop_uid = $result->user_id;
        $loop_pid = $result->product_id;

        if ( is_product(991) && $loop_uid == $user_id ) {
           //code
        } else {}
    }
}

答案 1 :(得分:0)

global $wpdb;
$user_id = get_current_user_id();

$results = $wpdb->get_results("SELECT * FROM awdwp_webinar_orders WHERE user_id=" . $user_id . "");

if ( $results ) {
    foreach( $results as $result ) {
        $loop_uid = $result->user_id;
        $loop_pid = $result->product_id;?>

        if ( is_product(991) && $loop_uid == $user_id && $loop_pid == 991 ) {
            echo '<h2>' . get_the_title($id) . '<h2>';
            $the_video = get_field('video_file'); 
            //display video code
        }else{
            echo "please purchase";
        }//end if
    } //end foreach 
} else {
    echo "please purchase";
}