■管理画面から一括削除を利用する(レビュー管理対応)
EC-CUBEのバージョン2.13.1では管理者モードからレビューを一括削除ボタンはあるが
処理が実装していないのでクリックしても何も起こらない
一括削除をするためには下記のファイルを編集する必要がある
/** * Page のアクション. * * @return void */ public function action() { // パラメーター管理クラス $objFormParam = new SC_FormParam_Ex(); $this->lfInitParam($objFormParam); $objFormParam->setParam($_POST); $objFormParam->convParam(); // URLを小文字に変換 $objFormParam->toLower('search_reviewer_url'); $this->arrForm = $objFormParam->getHashArray(); $this->arrHidden = $this->lfSetHidden($this->arrForm); // 入力パラメーターチェック $this->arrErr = $this->lfCheckError($objFormParam); if (!SC_Utils_Ex::isBlank($this->arrErr)) { return; } switch ($this->getMode()) { case 'delete': $this->lfDeleteReview($this->arrForm['review_id']); case 'search': case 'csv': // 検索条件を取得 list($where, $arrWhereVal) = $this->lfGetWhere($this->arrForm); // 検索結果を取得 $this->arrReview = $this->lfGetReview($this->arrForm, $where, $arrWhereVal); //CSVダウンロード if ($this->getMode() == 'csv') { $this->lfDoOutputCsv($where, $arrWhereVal); SC_Response_Ex::actionExit(); } break; // 下記を追加 case 'delete_all': // 一括削除処理 $this->doDelete(); break; default: break; } } /** * 商品レビュー一括削除 * * @param string なし * @param array なし * @return void */ public function doDelete() { $objQuery =& SC_Query_Ex::getSingletonInstance(); // 検索条件を取得 list($where, $arrWhereVal) = $this->lfGetWhere($this->arrForm); // 検索結果の取得 $col = 'review_id'; $from = 'dtb_review AS A LEFT JOIN dtb_products AS B ON A.product_id = B.product_id '; $arrReview = $objQuery->select($col, $from, $where, $arrWhereVal); // 該当レビューを削除 foreach($arrReview as $data) { $this->lfDeleteReview($data['review_id']); } }
これで希望どおりの動作がされる
■削除対象のレビュー情報を検索して『検索結果を全て削除』をクリック
■ポップアップで『OK』をクリックで対象レビューは削除される
次回は、レビューの表示ステータスを一括で変更出来るようにカスタマイズする