EC-CUBE 管理画面から一括削除を利用する(レビュー管理対応)

■管理画面から一括削除を利用する(レビュー管理対応)

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']);
  }
}

これで希望どおりの動作がされる

■削除対象のレビュー情報を検索して『検索結果を全て削除』をクリック
ec_cube_065

■ポップアップで『OK』をクリックで対象レビューは削除される
ec_cube_066

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

Comments are closed.