随机获取用户活跃帖子

时间:2018-08-29 作者:Alt C

我有一个产品ID数组

$products_ids = array(183,185,101);
我有用户ID列表

$user_ids= array(142,234,236);
我想随机获得一个用户的帖子,但我必须检查用户(按ID)是否带来了任何产品(按ID)。

此功能用于检查用户是否购买了产品:

wc_customer_bought_product( $user_id, $product_id );
但我无法将数组传递给它。如果我能够通过检查产品ID从$user\\u id中删除数组元素,我有一个随机获取帖子的解决方案。

$current_user_posts = get_posts( [
    \'author__in\'    =>  $authors, 
    \'orderby\'       =>  \'random\',
    \'post_per_page\' => \'1\',
    \'order\'         =>  \'ASC\' 
] );
我应该采取什么方法使它工作?

谢谢

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

但我无法将数组传递给它。如果我能够通过检查产品ID从$user\\u id中删除数组元素,我有一个随机获取帖子的解决方案。

是的wc_customer_bought_product() 函数仅接受单个用户/产品ID。

但你可以通过$user_ids 数组,对于每个用户(ID),循环$product_ids 然后打电话给wc_customer_bought_product() 函数,如下所示:

$authors = array();
foreach ( $user_ids as $user_id ) {
    foreach ( $product_ids as $product_id ) {
        // User alread checked.
        if ( in_array( $user_id, $authors ) ) {
            continue;
        }

        if ( wc_customer_bought_product( \'\', $user_id, $product_id ) ) {
            $authors[] = $user_id;
        }
    }
}
var_dump( $authors ); // testing
附加注释wc_customer_bought_product() 接受三个参数:

wc_customer_bought_product( $customer_email, $user_id, $product_id );
您只能提供$customer_email$user_id, 或者两者兼而有之。

而且wc_customer_bought_product() 退货true 仅适用于以下订单complete 而不是等待、处理等。

结束

相关推荐

从具有序列化值的元键获取GET_USERS

我想做一个get_users() 当元键有两个值时。例如,在db中,它如下所示:a:2:{i:0;s:10:\"31.08.2017\";i:1;s:9:\"username\";} 当我进行查询时:$claimed_users = get_users(\'meta_key=username\'); 并尝试输出它:print_r($claimed_users);它刚刚回来Array().我做错了什么?有没有更好的方法?