wordpressでログイン中の購読者ユーザーがpost形式

Writer: admin Type: 観葉植物 Date: 2018-12-13 00:00
wordpressでログイン中の購読者ユーザーがpost形式で受け取ったinputデータ(nameはpointとします)を、<?php wp_update_user( $userdata ) ?>などを流用して、そのinputデータの数値(例:1000)をユーザー情報の user_url のテーブルに追加・保存をすることはできますでしょうか?目標としては、受け取ったinputの数値が1000ならば、その数値をuser_url(最初に100という数値が設定されています)に追加して、合計が1100となるようにしたいです。また、逆に数値が-50などの場合は、user_urlに(100 -50)で合計値が50に上書き保存などは出来るのでしょうか?この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。###varchar型のuser_urlに整数値(を文字列化したもの)を入れるということみたいですから、直接SQLで書くのも面倒そうですね。#phpで書くなら、$str = strval(intval($str) + 1000); とかで#書けるとは思います(汗get_userdata()で取得したuser_urlを(上記のような処理で)更新してwp_update_user()に引き渡せばいいように思います。それとも(select時に"for update"でロックしたいので)全部自前で書きますかね。それほど面倒じゃないですよね。(蛇足)DBのカラムが数値型ならupdate wp_users set xxx = xxx + 1000 where ID = ?とかで済むのに。user_url以外のカラムを自前で用意するわけにはいかないのでしょうかねぇ・・・ナイス0
###ご回答ありがとうございます。上記を参考に独自のカラム(pointcolumn)を用意して、下記のように書いてみたのですが、データベースの更新が出来ませんでした。改善点はありますでしょうか?// post形式で受け取ったinputデータ(nameはpointとします)if(isset($_POST['point'])){$point = $_POST['point'];$user = wp_get_current_user();// 独自のカラム(pointcolumn)にはユーザーごとに違う数値(50や100など)がセットされています$sql_up = $wpdb->prepare("UPDATE $wpdb->wp_users SET pointcolumn + $point WHERE user_login = $user -> ID");$result = $wpdb->query( $sql_up );}
###この質問は投票によってベストアンサーに選ばれました!

 

TAG