サポート » プラグイン » 1つのカスタムフィールドに入力した数値の合算と期間指定

  • 初めて投稿します。宜しくお願い致します。
    html、cssは理解がありますがPHPはノータッチ、WordPressは色々調べて切り貼りして構築しているレベルです。

    WordPressのカスタムフィールドテンプレートを活用して、営業マンの売上管理システムを構築しようと考えています。

    〈おおまかなイメージ〉
    1.営業担当者毎にアカウントを発行します。
    2.契約を取ったら各々が「投稿」から記事として売上を投稿(お客様名、売上金額などを、カスタムフィールドテンプレートに入力)します。
    3.営業担当者毎の売上累計の表示と、全員の売上累計の表示、可能であれば期間を指定して今月、先月、先々月の売上合計なども表示させたいです。

    〈カスタムフィールド名の設定例〉
    お客様名:name
    売上金額:uriage

    〈一覧表示ページ 一部〉

    <ul class="uriage_li">
    <li><p><span>担当者</span></p></li>
    <li><p><span>お客様名</span></p></li>
    <li><p><span>売上金額</span></p></li>
    <li><p><span>詳細</span></p></li>
    <?php query_posts('posts_per_page=10&cat=13&paged='.$paged); ?>
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <li><p><?php the_author(); ?></p></li>
    <li><p><?php echo post_custom("name")?></p></li>
    <li><p><?php echo post_custom("uriage")?></p></li>
    <li><p><a href="<?php the_permalink(); ?>">詳細を見る</a></p></li>
    <?php endwhile; endif; ?>
    </ul>

    上記のループで投稿一覧は表示出来ています。
    フィールド名「uriage」の合計を出すことは可能でしょうか。
    散々調べましたが、「A+B=C」の例しか見つけることが出来ませんでした。
    「A+A=C」を出したいです。

    これらの情報で伝わっているか不安ですが、ご教授いただけますと大変助かります。
    宜しくお願い致します。

    • このトピックは sakamotosndが3 ヶ月、 2 週間前に変更しました。
    • このトピックは sakamotosndが3 ヶ月、 2 週間前に変更しました。
    • このトピックは3 ヶ月、 2 週間前に  sakamotosnd さんが編集しました。理由: 一部記述ミスがあったので修正いたしました。
1件の返信を表示中 - 16 - 16件目 (全16件中)
  • @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件の返信を表示中 - 16 - 16件目 (全16件中)
  • このトピックに返信するにはログインが必要です。