kitamuuu
投稿の際は下記の情報をお書き添えください。
-------------------------------------------
WordPress のバージョン:(例 6.8.2)
Welcart のバージョン:(例 2.11.20)
PHP のバージョン:(例 8.2)
Welcart専用の拡張プラグインとバージョン:(例 DL Seller 3.5.8、SKU Select 1.4.7)
ご利用の親テーマとバージョン :(例 Welcart Basic 1.8.7)
ご利用の子テーマとバージョン :(例 Welcart Beldad 1.5.5)
利用している決済モジュール:
症状を確認したブラウザ:
サーバー【重要】:(会社名、サービス名)
--------------------------------------------
フォーラムへの返信
-
投稿者投稿
-
kitamuuu
参加者「Google Analytics for WordPress」にはバージョンアップの度に変更しなくて済むように、
フックポイントが置かれているですが、「Google Analytics by Yoast」のコードを見るとそのフックポイントが置かれていません。
ですので、「Google Analytics Dashboard for WP」と同様、ファイルの置き換えを行わなければならない事になってしまいます。「Google Analytics for WordPress」のリニューアル版という事でしたら、フックポイントが有るかもと期待したのですが、残念です。
ありがとうございました。kitamuuu
参加者skuが一つなら
echo apply_filters(‘single_item_single_sku_after_field’, NULL);2つ以上なら
echo apply_filters(‘single_item_multi_sku_after_field’, NULL);
と上記のようになってますが、これにはどんな意味がありますか?ご質問の中にある通り、welcartのデフォルトテンプレートでは、商品詳細ページにおいてSKUが一つの時と、複数ある場合で分岐分けを行ってレイアウトを変えています。
ですので、それぞれに別のカスタマイズが行えるよう、異なるフックポイントを用意しているということです。kitamuuu
参加者「SSLを使用する」の下の項目「WordPress のアドレス (SSL)」・「ブログのアドレス (SSL)」の入力をしなくてはいけません。
kitamuuu
参加者よかったです。ちなみに最後の
$mes[$post_id][$sku] = ‘文字数エラー’;は、このフックを通るまでの在庫などのチェックで引っかかっていた場合のメッセージを上書きしてしまうので
$mes[$post_id][$sku] .= ‘文字数エラー’;としておいたほうがいいと思います。
-
この返信は11年、 4ヶ月前に
kitamuuuが編集しました。
kitamuuu
参加者すいませんissetが抜けていました。
if( $_POST['itemOption'][$post_id][$sku][$enc_txtarea_op] ){を
if( isset($_POST['itemOption'][$post_id][$sku][$enc_txtarea_op]) ){としてください。
kitamuuu
参加者もし、テーマの中でwc_templatesフォルダ内のwc_item_single.phpを使用していて、尚且つ、wc_item_single.phpの記述中のエラーを出力するための、usces_singleitem_error_messageという関数を削除してしまっていたら出力されません。
wc_item_single.phpファイルを使用していないのであればこの点は関係ありません。また、カスタマイズの際には記述ミスなどのエラーをブラウザで確認できるよう、wp-config.php 内の define(‘WP_DEBUG’, false); を define(‘WP_DEBUG’, true); にして行ったほうが原因が特定しやすいです。何かエラーがでているならそれを解決する必要があります。カスタマイズが終わったらこの記述は元に戻してください。
ちなみに
if(isset($_POST)){だけではテキストエリアがあるかどうかはチェックできていないので
if( $_POST['itemOption'][$post_id][$sku][$enc_txtarea_op] ){とする必要があります。
また、前述したとおりこの分岐は、テキストエリアの値($textarea_val)を取得する前に記述しないといけないので、もう一度記述を見直して見て下さい。kitamuuu
参加者テキストエリアの値の取得は関数定義(function)の中に記述しないといけません。
また、テキストエリアの値($textarea_val)を取得する前に、制限したいテキストエリアの値が$_POSTに含まれているかをチェックし、あるときだけ値を取得しないと、テキストエリアが設置されていない商品をカートにいれたときにエラーが起きてしまいます。[カートへ入れる]を押すとカート画面へは移動しなくなったのですが
「エラー」の文字が画面上に出力されません。との事ですが、こちらではエラーの文字が赤文字で表示されますので、もう一度よく確認してみて頂けますか。
kitamuuu
参加者その記述ですと、PHPとJavascriptが入り混じっているのでエラーになってしまいます。
記述はPHPで行って下さい。例えば
add_filter( 'usces_filter_incart_check', 'my_incart_check', 10, 3 ); function my_incart_check($mes, $post_id, $sku){ $mes[$post_id][$sku] .= 'エラー'; return $mes; }とすると、毎回「エラー」というメッセージが表示されるようになります。
あとはテキストエリアの値を$_POSTで受け取り、mb_strlenというPHPの関数を使って
文字数をカウントできるので、テキストエリアに入力された値が20文字を超えている場合にのみこの処理を行うよう、条件分岐をすればいいと思います。
Welcartの[基本設定]>[共通オプション]を使ってテキストエリアを挿入しているのであれば、オプション名をひらがなや漢字等で指定していると、urlencodeされたものがテキストエリアのnameとなっているので以下のように取得して下さい。
「オプション名」という記述は文字数制限したい共通オプション名に置き換えてください。$enc_txtarea_op = urlencode('オプション名'); $textarea_val = $_POST['itemOption'][$post_id][$sku][$enc_txtarea_op];kitamuuu
参加者フィルターを使用したカスタマイズになりますが、
商品をカートへ入れたときのエラーチェック関数の中に usces_filter_incart_check というフィルターがあるので、ここにテキストエリアの値が制限文字数を超えていたら、指定したエラーメッセージを出力する関数をフックするとよいと思います。kitamuuu
参加者こちらは次期バージョン(1.4.4)にて修正されます。
お急ぎであればDevelopment Versionにて既に修正されておりますので、リンク先(http://wordpress.org/plugins/usc-e-shop/download/)の「Development Version」というリンクから本体をダウンロードし、手動でアップロードして頂くか、もしくはご利用のテーマ内のstyle.cssに以下の記述を追加して下さい。.hidden { display: none; }kitamuuu
参加者失礼しました。
「会員登録しながら次へ」の場合のチェックを修正致しましたので、再度上記リンクよりDevelopment Versionをダウンロードして頂けますでしょうか。kitamuuu
参加者全ての受注で同じ現象が見られるのでしょうか?
kitamuuu
参加者同様の症状を確認致しました。
次期バージョンにて修正致しますので、今しばらくお待ち下さい。
お急ぎでしたら下記リンク先の下のほうにある
「Development Version」というリンクからエラーチェックの修正を
行ったものがダウンロードできますので、こちらを手動でアップロード
してお使い下さい。http://wordpress.org/plugins/usc-e-shop/download/
ご報告ありがとうございました。
kitamuuu
参加者ご報告頂きましてありがとうございます。
ご報告のとおり「Google Analytics Dashboard for WP」がバージョンアップ作業により一時インストールできない状態にありましたが、現在はインストール可能となっております。
既に上記URLの記事を参考にユニバーサルアナリティクスへの対応を行っていた方は、
「Google Analytics Dashboard for WP」のバージョンアップを行う場合、再度ファイルの差し替えを行って頂く必要がございますのでご注意下さい。kitamuuu
参加者wp_deregister_script(‘jquery’); wp_register_script(‘jquery’, ‘//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js’, array(), NULL);最初のほうにある上の記述箇所のコメントアウト部分がシンタックスエラーを起こしています。
上の記述はjqueryの読み込みを解除してまた追加している無意味な記述だと思うのでそのまま2行消して試してみてください。 -
この返信は11年、 4ヶ月前に
-
投稿者投稿
PAGE TOP