■管理画面から一括削除を利用する(レビュー管理対応)
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』をクリックで対象レビューは削除される

次回は、レビューの表示ステータスを一括で変更出来るようにカスタマイズする