EC-CUBEでWordPressを使うと商品登録やパラメータが登録できなくなる問題の対策

EC-CUBE

EC-CUBE Ver2.13.5とWordPressを連携させるとパラメータや商品登録ができなくなるバグがでました。

 

EC-CUBE Ver2.13.5で「wp-load.php」を読み込んだ際の注意点

EC-CUBE Ver2.13.5でWordPressを使うために「wp-load.php」を読み込むとダブルクォーテーションがエスケープされてしまい登録ができなくなってしまう。
これは、WP側でエスケープしてしまって起こる問題です。
読み込んだ後、下記コードで戻してあげると通常通り登録ができるようになりました。

 

まずEC-CUBEの「require.php」で「wp-load.php」を読み込む。

require_once __DIR__.'/wp-load.php';

 

この状態では、上記の説明で書いたように商品登録の際やパラメータを変更する際にエラーが発生します。
なので、「require.php」の追記したところに下記も追加してあげます。

function strip_magic_quotes_slashes($arr){
if(is_array($arr)){
return array_map('strip_magic_quotes_slashes', $arr);
} else {
return stripslashes($arr);
}
}

$_GET = strip_magic_quotes_slashes($_GET);
$_POST = strip_magic_quotes_slashes($_POST);

 

まとめるとこんな感じ。

require_once __DIR__.'/wp-load.php';

function strip_magic_quotes_slashes($arr){
if(is_array($arr)){
return array_map('strip_magic_quotes_slashes', $arr);
} else {
return stripslashes($arr);
}
}

$_GET = strip_magic_quotes_slashes($_GET);
$_POST = strip_magic_quotes_slashes($_POST);

コレで無事にエラーも発生せず、商品登録、パラメータ登録することができました!

コメント

タイトルとURLをコピーしました