現在、下記のfunction.phpにて、page-mail-restart.phpにある『メルマガ配信再開』というsubmitボタンをクリックすると
再開する為に必要なデータが入ったcsvが発行されるロジックが出来上がっております。
この時、function.phpの下から5行目にて、別ページへリダイレクトされているのですが、
この処理をajaxを使って”メルマガ配信再開処理が完了しました。”という文言を同じページに出す処理に変えたいです。
上記の用件を満たす代替案を教えていただけませんでしょうか?
・function.php
//メルマガ配信再開用CSVエクスポート ボタンクリック時発火アクション if ( ! function_exists( 'mailmagazine_restart' ) ) { function mailmagazine_restart(){ if(isset($_POST["mail-magazine-restart"])){ session_start(); $session_id = session_id();//セッション開始 $time_2 = date('YmdHis');//メルマガ配信再開日 // ファイルを書き込み用に開きます。 $filepath = configConfig::get('config.csv.dir');//csvファイル吐き出し箇所 $f = fopen($filepath.$time_2.'_'.$session_id.'_MailMagazineRestart.csv', "w");//CSVのファイル名 //headカラム_CSV吐き出し $head = array('書き込み情報1','書き込み情報2');//csv書き込み情報 // write the data to csv mb_convert_variables('SJIS', 'UTF-8', $head);//UTFをShiftJISに変換 fputcsv($f, $head);//発行するcsvにheadの内容書きこむ // 正常にファイルを開くことができていれば、csvを書き込みます。 if ( $f ) { $element1 = wp_get_current_user(); $element2 = get_field( 'system_id', "user_{$user->ID}" ); $url = csv吐き出し後の遷移先url; $line = array('$element1','$element2'); mb_convert_variables('SJIS', 'UTF-8', $line); fputcsv($f, $line); } fclose($f);// ファイルを閉じます。 wp_redirect( $url, 302 );//リダイレクト exit; } } }
・page-mail-restart.php
<?php /* Template Name: メール配信再開ページ */ get_template_part('includes/header'); mailmagazine_restart(); ?> <!-- main --> <div id="main"> <div class="wrap"> <form method="post" action="" enctype="multipart/form-data" encoding="multipart/form-data"> <div class="csv-main"> <div><input type="submit" id="restart" name="mail-magazine-restart" value="メルマガ配信再開"></div> <div id="restart-text"> <-- ここでメッセージを表示させたい --> </div> </div> </form> </div> </div> <!-- /main --> <?php get_sidebar(); ?> <?php get_template_part('includes/footer'); ?>
現在このような状況になっております。
【現在の状況】
wp_redirect( $url, 302 );//リダイレクト
↓
<script type="text/javascript"> $.ajax("function-v1.php", { type: 'POST', dataType: 'json', data: edata, success: function() { $("#restart-text").append("<p>メルマガの配信再開処理が完了致しました。</p>"); } }); </script>
このように書き換え、ボタン押下後、<div id="restart-text">内にテキストが追加されることを期待。
【起こる現象】
→ディレクトリ名は変わらないが、真っ白なページへ遷移される。
お手数をお掛けし、恐縮ではございますが、教えていただけると嬉しいです。よろしくお願い致します。
あなたの回答
tips
プレビュー