递增地增加或减少用户元字段

时间:2012-07-26 作者:Dan

我正在尝试创建一个系统,向用户帐户添加信用,然后在用户提交帖子时从信用中减去。

我有触发添加学分和删除学分所需的函数,我只需要实际代码的帮助就可以完成这部分。

这就是我想做的:

添加信用设置一个名为“的变量”add_credit_amount“添加信用额度。

  • 获取当前用户的ID

    获取当前信息users meta field value 存储在“my_user_credit“字段

    添加“add_credit_amount“变量到”my_user_credit“金额

    用新金额更新用户“my\\u user\\u credit”字段。

    删除贷方创建一个名为“的变量”remove_credit_amount“并设置要删除的信用额度。

    获取当前用户的ID

    获取当前信息users meta field value 存储在“my_user_credit“字段

    检查“”中的值my_user_credit“字段大于或等于”remove_credit_amount".

    如果是,则减去“remove_credit_amount“变量来自”my_user_credit“字段金额并更新用户”my_user_credit“具有新金额的字段。

    如果不是,那么echo 此消息:“您没有足够的信用来发布。”

    提前感谢所有能提供帮助的人。

    使现代化

    @约书亚·阿贝纳泽

    我正在努力让它发挥作用。如果他们没有足够的学分,我不想出示表格。你能理解为什么它不能正常工作吗?它似乎不会返回meta字段的值。

    谢谢

    <?php 
    global $user_ID;
    $user_ID = wp_get_current_user();
    $creditcount = get_user_meta( $user_ID, \'my_user_credit\', true );
    if($creditcount <= 4){
    echo \'please get more credits\';
    } else {
    echo do_shortcode(\'[gravityform id=2 title=false description=false]\');
    }
    
    ?>
    
    谢谢

  • 1 个回复
    SO网友:Joshua Abenazer

    下面的功能应该可以完成您的工作。

    function manage_credits( $operation = \'add\', $amount = 0 ) {
        $user_id = get_current_user_id();
    
        if ( $user_id ) {
            $user_credit = (int) get_user_meta( $user_id, \'my_user_credit\', true );
    
            if ( \'add\' == $operation ) {
                $user_credit += $amount;     //For adding credits
            } elseif ( \'remove\' == $operation && ( $user_credit >= $amount ) ) {
                $user_credit -= $amount;     //For removing credits
            } elseif ( \'remove\' == $operation ) {
                echo \'You do not have enough credits to post.\';
                return;
            }
            update_user_meta( $user_id, \'my_user_credit\', $user_credit );
        }
    }
    
    现在,您只需在触发add时调用manage_credits( \'add\', 10 ) 触发remove时,您将调用manage_credits( \'remove\', 10 ). 第二个参数应与要添加或删除的信用额一起传递。

    结束

    相关推荐