ajaxをトリガーに、wordpressの関数を実行させたいのですができないでいます。
ajax実行後のalertの"データ保存: "は表示される状態です。
wordpressの関数内容は
wordpressのテーマをzipにしダウンロードするものです。
ダウンロードする際にhttpリクエストを使用するのでajaxの使用がよくないのかなと思っていますが
ajax、javascriptに強くないので何が原因か、あたりもつけられないでいます。
なにかわかる方がいましたらご教授いただけるとありがたいです。
js
($=>{ $.ajax({ type: 'post', url: ajaxurl, data: { action: 'backup_data_setting', } }).done(function() { alert( "データ保存: "); }); })(jQuery);
wordpress
function backup_data_setting() { // zipファイル名 $fileName = "test-zipFile"; // 圧縮対象フォルダ $bp_path = dirname(__FILE__); $compressDir = str_replace("/functions", "", $bp_path); // zipファイル保存先 $zipFileSavePath = str_replace("/テーマ名", "", $compressDir); // コマンド // cd:ディレクトリの移動 // zip:zipファイルの作成 $command = "cd ". $compressDir .";". "zip -r ". $zipFileSavePath . $fileName .".zip ."; // Linuxコマンドの実行 exec($command); //圧縮したファイルをダウンロードさせる。 header('Pragma: public'); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=".$fileName.".zip"); readfile($zipFileSavePath.$fileName.".zip"); } add_action( 'wp_ajax_backup_data_setting', 'backup_data_setting' );
※jsは実際はボタンをクリックして上記のjsを実行するようにしてあります。
※管理画面向けのもののため、ログインしている状態からの動作です。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/15 02:56
2016/09/15 03:02
2016/09/15 03:22