sakamotosnd
フォーラムへの返信
-
フォーラム: プラグイン
返信が含まれるトピック: 1つのカスタムフィールドに入力した数値の合算と期間指定@mura0403 さん
コードありがとうございます!
いずれも検証してみましたが、何も出力されませんでした。。※エラーも出ていません。<h3>先月の累計</h3> <?php /*営業マンの売り上げを取得&計算*/ $timestamp = date('U', strtotime('last Month', strtotime( date('U') ))); $last_month = getdate($timestamp );//ミリ秒で渡す $args = array( 'numberposts' => '-1', 'post_type' => 'post', 'meta_key' => 'tantou', //営業マンのカスタムフィールド名 // 'meta_value' => 'a', //例えば、営業マン'a' //'orderby' => 'meta_value_num', //'order' => 'ASC', 'date_query' => array( array( 'year' => $last_month['year'], 'month' => $last_month['mon'], ), ), ); $customPosts = get_posts($args); $goukei = ''; $kensuu = ''; if($customPosts) : foreach($customPosts as $post) : $uriage = post_custom("uriage"); if($uriage): $uriage_mon_last[] = $uriage; endif; $kensuu++; //対象記事の数だけ加算する endforeach; if($uriage_mon_last): $goukei = array_sum ( $uriage_mon_last); endif; echo '売上金額:'; echo $goukei; //計算した値を表示 echo '<br>売上件数:'; //対象記事の数 echo $kensuu; echo '<br>平均売り上げ:'; echo round($goukei/$kensuu,1); //小数点第1位で四捨五入 endif; wp_reset_postdata(); /*クエリのリセット*/ ?>
一応下記もお伝え致します。
同一ページに下記の2つがあり、それらは出力されております。<h3>今月の累計</h3> <?php /*営業マンの売り上げを取得&計算*/ $today = getdate(); $args = array( 'numberposts' => '-1', 'post_type' => 'post', 'meta_key' => 'tantou', //営業マンのカスタムフィールド名 // 'meta_value' => 'a', //例えば、営業マン'a' //'orderby' => 'meta_value_num', //'order' => 'ASC', 'date_query' => array( array( 'year' => $today['year'], 'month' => $today['mon'], ), ), ); $customPosts = get_posts($args); $goukei = ''; $kensuu = ''; if($customPosts) : foreach($customPosts as $post) : $uriage = post_custom("uriage"); if($uriage): $uriage_mon[] = $uriage; endif; $kensuu++; //対象記事の数だけ加算する endforeach; if($uriage_mon): $goukei = array_sum ( $uriage_mon); endif; echo '売上金額:'; echo $goukei; //計算した値を表示 echo '<br>売上件数:'; //対象記事の数 echo $kensuu; echo '<br>平均売り上げ:'; echo round($goukei/$kensuu,1); //小数点第1位で四捨五入 endif; wp_reset_postdata(); /*クエリのリセット*/ ?>
<h3>全体の累計</h3> <?php /*営業マンの売り上げを取得&計算*/ $args = array( 'numberposts' => '-1', 'post_type' => 'post', //投稿タイプの指定 'post_status' => 'all', //すべての投稿タイプ(なくてもいい) 'meta_key' => 'tantou', //営業マンのカスタムフィールド名 // 'meta_value' => 'a' //例えば、営業マン'a' ); $customPosts = get_posts($args); $goukei = ''; $kensuu = ''; if($customPosts) : foreach($customPosts as $post) : $uriage = post_custom("uriage"); if($uriage): $uriage_a[] = $uriage; endif; $kensuu++; //対象記事の数だけ加算する endforeach; if($uriage_a): $goukei = array_sum ( $uriage_a); endif; echo '売上金額:'; echo $goukei; //計算した値を表示 echo '<br>売上件数:'; //対象記事の数 echo $kensuu; echo '<br>平均売り上げ:'; echo round($goukei/$kensuu,1); //小数点第1位で四捨五入 endif; wp_reset_postdata(); /*クエリのリセット*/ ?>
私の方でもいろいろ試してみます!
フォーラム: プラグイン
返信が含まれるトピック: 1つのカスタムフィールドに入力した数値の合算と期間指定@mura0403 さん
ご返信遅くなりまして申し訳ございません。
他業務が押してしまい、まだ自力ではなにも試せていない状況でした。。いただいたコードにて、今月分の売上合計が表示されました!
今月分を$uriage_monとして、同一ページに「全体」と「今月」の売上合計を表示することが出来ました。未だ使用したことのないパラメータでしたので、WP版ウィキペディア的なものを見ながら勘でいろいろ記述してみましたが、先月分の表示までは行き着きませんでした。
'month' => $today['mon'],
を'month' => $today['1 month ago'],
としてみたり、-1をつけたり、beforeの行を追記してみたりしましたが、的外れだったようです。どのようにしたら先月分を出すことができますでしょうか。
質問ばかりで申し訳ございません。
宜しくお願い致します。フォーラム: プラグイン
返信が含まれるトピック: 1つのカスタムフィールドに入力した数値の合算と期間指定@ioxrxogi さん
全角の空白を半角にしたらそこのエラーが無くなりました。ありがとうございます。
$star[] = get_field('uriage'); //カスタムフィールドを取得 ※数値型
その後、ここでエラーが出ていたのですが、なんとか回避できました。そして、 @mura0403 さん、@ioxrxogi さん、
お二人からのコードを基に、記述を足したり削ったりで合計金額が出せました!!!
感激です;;<?php /*営業マンの売り上げを取得&計算*/ $args = array( 'numberposts' => '-1', 'post_type' => 'post', //投稿タイプの指定 'post_status' => 'all', //すべての投稿タイプ(なくてもいい) 'meta_key' => 'tantou', //営業マンのカスタムフィールド名 'meta_value' => 'a' //例えば、営業マン'a' ); $customPosts = get_posts($args); $goukei = ''; $kensuu = ''; if($customPosts) : foreach($customPosts as $post) : $uriage = post_custom("uriage"); if($uriage): $uriage_a[] = $uriage; endif; $kensuu++; //対象記事の数だけ加算する endforeach; if($uriage_a): $goukei = array_sum ( $uriage_a); endif; echo '売上金額:'; echo $goukei; //計算した値を表示 echo '<br>売上件数:'; //対象記事の数 echo $kensuu; echo '<br>平均売り上げ:'; echo round($goukei/$kensuu,1); //小数点第1位で四捨五入 endif; wp_reset_postdata(); /*クエリのリセット*/ ?>
記述の順番とか滅茶苦茶かもしれません。恥ずかしいですがそのままコードを載せます。
'meta_value' => 'a'
をコメントアウトで全員の累計も出せました。
なによりエラーが無く数値が出たことがとても嬉しいです。次は今月、先月、先々月などの期間を指定した表示方法を試してみます。
- この返信は6年、 6ヶ月前にsakamotosndが編集しました。
- この返信は6年、 6ヶ月前にsakamotosndが編集しました。
フォーラム: プラグイン
返信が含まれるトピック: 1つのカスタムフィールドに入力した数値の合算と期間指定@ioxrxogi さん
とんでもございません!こちらこそトンチンカンで申し訳ありません。。
〈望んでいるサイトの構成〉
営業マン毎にWPアカウントを発行します。権限は編集者の予定です。
各営業マンはWPの管理画面から記事(1件毎の売上実績)を投稿します。
記事を投稿する時に、カスタムフィールドテンプレートにお客様名(フィールド名:name)や売上金額(フィールド名:uriage)を入力して投稿し、HPに反映されるといったイメージです。可能であれば the_author(); で投稿者(営業マン)名をそのまま反映させたかったのですが、仰るように『営業マン一覧』から選択させる方法でも構いません。
HPは内部の人間しか閲覧せず、売上のリアルタイムチェック用サイトとなります。
〈動作確認について〉
初めにいただいたコードですと、下記の行でエラーが出ます。
'meta_value' => 'a' //例えば、営業マン'a'
aという名前でWPアカウントを発行&記事投稿をしてみましたが、エラーのままでした。仕様として、nameは契約を取ったお客様名をフィールドに充てているので、営業マンのフィールド名はtantouとしています。
ioxrxogiさんにいただいたコードはそこだけ変更しました。<?php /*営業マンの売り上げを取得&計算*/ $args = array( 'numberposts' => '-1', 'post_type' => 'post', //投稿タイプの指定 'post_status' => 'all', //すべての投稿タイプ(なくてもいい) 'meta_key' => 'tantou', //営業マンのカスタムフィールド名 'meta_value' => 'a' //例えば、営業マン'a' ); $customPosts = get_posts($args); $star = ''; //reset $sum_star = ''; $people = ''; if($customPosts) : foreach($customPosts as $post) : $star[] = get_field('uriage'); //カスタムフィールドを取得 ※数値型 $people++; //対象記事の数だけ加算する endforeach; if($star): $sum_star = array_sum($star); endif; echo '売上金額:'; echo $sum_star; //計算した値を表示 echo '<br>売上件数:'; //対象記事の数 echo $people; // echo '<br>平均売り上げ:'; // echo round($sum_star/$people,1); //小数点第1位で四捨五入 endif; wp_reset_postdata(); /*クエリのリセット*/ ?>
何度も申し訳ございません。宜しくお願い致します。
フォーラム: プラグイン
返信が含まれるトピック: 1つのカスタムフィールドに入力した数値の合算と期間指定@ioxrxogi さん
参考コードありがとうございます。
切り貼りレベルとは思えないほど迅速なお返事です。営業マンをラジオボタンでabcから選択できるようにしてみました。
下記にGETを入れたりaのままにしてやってみましたが、ここでエラーがでてしまいます。
多分書き方がちゃんとなっていないのもあるのだと思いますが・・。
'meta_value' => 'a' //例えば、営業マン'a'
上記の行をコメントアウトすると、下記でエラーになります。
$star[] = get_field('uriage'); //カスタムフィールドを取得 ※数値型
もう少し試してみます。
取り急ぎお礼だけm(_ _)m
ありがとうございます。フォーラム: プラグイン
返信が含まれるトピック: 1つのカスタムフィールドに入力した数値の合算と期間指定@ishitaka さん
返信ありがとうございます。
理想的な処理をしてくれそうなコードですが、『データベース』という単語だけでも引いてしまうほど無知なので少しビビっています。
今後、もっとそちら寄りの勉強を進めた時に活用させていただきます。
ありがとうございます。フォーラム: プラグイン
返信が含まれるトピック: 1つのカスタムフィールドに入力した数値の合算と期間指定@ioxrxogi さん
返信ありがとうございます。
実はそちらの記事は私も辿り着いておりました。
ですが、@mura0403 さんが記述しているコードのどこを変更したら想像した処理をしてくれるのか、試行錯誤しましたが自分では解決できませんでした。お手上げ状態になり、こちらに投稿した次第です。
フィールド名「uriage」の合計を出す記述を教えていただけますと大変助かりますが、難しいでしょうか。。