lareve
投稿の際は下記の情報をお書き添えください。
-------------------------------------------
WordPress のバージョン:(例 6.0.2)
Welcart のバージョン:(例 2.8.1)
PHP のバージョン:(例 8.0)
Welcart専用の拡張プラグインとバージョン:(例 DL Seller 3.4.1、SKU Select 1.4.2)
ご利用の親テーマとバージョン :(例 Welcart Basic 1.7.1)
ご利用の子テーマとバージョン :(例 Welcart Beldad 1.4)
症状を確認したブラウザ:
サーバー【重要】:(会社名、サービス名)
--------------------------------------------
フォーラムへの返信
-
投稿者投稿
-
lareve参加者
すみません。
本件、自力で解決できました。lareve参加者kitamuuu様
有難うございます。
下記の通りの記述でうまくいきました!!add_filter(‘usces_filter_incart_check’, ‘my_incart_check’, 10, 3);
function my_incart_check($mes, $post_id, $sku){
$enc_txtarea_op = urlencode(‘文字’);
if( isset($_POST[‘itemOption’][$post_id][$sku][$enc_txtarea_op]) ){
$textarea_val = $_POST[‘itemOption’][$post_id][$sku][$enc_txtarea_op];
$text_length = mb_strlen($textarea_val);
if($text_length > 20){
$mes[$post_id][$sku] = ‘文字数エラー’;
return $mes;
}
}
}ほんとに嬉しいです。
何度もご対応いただき、さらに迅速なるご回答に感謝しております。
誠にありがとうございました。lareve参加者kitamuuu様
すみません。
どうしてもうまくいきません。
昨日までは20文字以上をテキストエリアに記入するとカートページへは
移動していなかったのですが、なぜかそれもできなくなってしまいました。一度、最初の状態にもどしてみて、教えていただいた下記の記述を試してみました。
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;
}結果、下記のようなエラーメッセージが表示されます。
Notice: Undefined offset: 846 in /home/la-reve/la-reve.com/public_html/wp-content/themes/LRV/functions.php on line 18
Notice: Undefined index: %E3%82%A8%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88%E6%96%87%E5%AD%97 in /home/la-reve/la-reve.com/public_html/wp-content/themes/LRV/functions.php on line 18
Warning: Cannot modify header information – headers already sent by (output started at /home/la-reve/la-reve.com/public_html/wp-content/themes/LRV/functions.php:18) in /home/la-reve/la-reve.com/public_html/wp-content/plugins/usc-e-shop/classes/usceshop.class.php on line 4492
welcartのプラグイン自体が壊れてしまったのでしょうか?
かなり心配です。なにか対策はありますでしょうか?
lareve参加者kitamuuu様
アドバイスいただき誠にありがとうございます。
下記の通りの記述に変更致しました。
/*文字数制限エラー*/
add_filter( ‘usces_filter_incart_check’, ‘my_incart_check’, 10, 3 );
function my_incart_check($mes, $post_id, $sku){
if( $_POST[‘itemOption’][$post_id][$sku][$enc_txtarea_op] ){
$enc_txtarea_op = urlencode(‘文字列’);
$textarea_val = $_POST[‘itemOption’][$post_id][$sku][$enc_txtarea_op];
$text_length = mb_strlen($textarea_val);
if($text_length > 20 ){
$mes[$post_id][$sku] .= ‘文字数エラー’;
return $mes;
}
}
}また、wc_item_single.phpを確認したところ、
usces_singleitem_error_messageという関数は削除していなかったのですが、
<?php get_header(); ?> が2重に記述されていることに気付いた為、
1つ削除しました。
これは、原因として考えられますでしょうか?以上を修正した後、wp-config.php 内の define(‘WP_DEBUG’, false); を
define(‘WP_DEBUG’, true);に変更して動作確認を行った結果
下記のようなメッセージが画面上に表示されたのですが、修正方法が分かりません。
大変申し訳ないのですが、解読いただけると助かります。
また、私のオリジナルテーマ内のfunctions.phpを添付致しますので
ご確認いただけないでしょうか。Notice: Undefined variable: enc_txtarea_op in /home/la-reve/la-reve.com/public_html/wp-content/themes/LRV/functions.php on line 18
Notice: Undefined index: in /home/la-reve/la-reve.com/public_html/wp-content/themes/LRV/functions.php on line 18
ほんとにご迷惑おかけしており申し訳ありませんが、よろしくお願いいたします。
- この返信は10年、 3ヶ月前にlareveが編集しました。
Attachments:
You must be logged in to view attached files.lareve参加者kitamuuu様
迅速なご回答、誠に感謝いたします。。<br>
御教示いただいた通りテキストエリアの値の取得を関数定義(function)の中に記述し、<br>
制限したいテキストエリアの値が$_POSTに含まれているかをチェックする為、<br>
if(isset($_POST))を追記致しました。その結果、20文字を超えるとカートへ入れることができないようになりました。<br>
これだけでも、ほんとに嬉しいです。<br>
記述は下記の通りです。/*文字数制限エラー*/<br>
add_filter( ‘usces_filter_incart_check’, ‘my_incart_check’, 10, 3 );<br>
function my_incart_check($mes, $post_id, $sku){<br>
$enc_txtarea_op = urlencode(‘文字列’);<br>
$textarea_val = $_POST[‘itemOption’][$post_id][$sku][$enc_txtarea_op];<br>
if(isset($_POST)){<br>
$text_length = mb_strlen($textarea_val);<br>
if($text_length > 20 ){<br>
$mes[$post_id][$sku] .= ‘文字数エラー’;<br>
return $mes;<br>
}<br>
}<br>
}しかし、やはり「文字数エラー」が表示されずに困っております。<br>
なにか考えられる原因はありますでしょうか?<br>テーマは、オリジナルのテーマを使用してますが、関係ありますか?
例えば、背景画像を設定してますが、画像で「文字数エラー」の文字が
隠れてしまう等ということはありますでしょうか?度々のご質問で大変恐縮ですが、何卒御教示の程宜しくお願い致します。
lareve参加者kitamuuu様
迅速なご回答、誠に感謝いたします。。
御教示いただいた通りテキストエリアの値の取得を関数定義(function)の中に記述し、
制限したいテキストエリアの値が$_POSTに含まれているかをチェックする為、
if(isset($_POST))を追記致しました。その結果、20文字を超えるとカートへ入れることができないようになりました。
これだけでも、ほんとに嬉しいです。
記述は下記の通りです。/*文字数制限エラー*/
add_filter( ‘usces_filter_incart_check’, ‘my_incart_check’, 10, 3 );
function my_incart_check($mes, $post_id, $sku){
$enc_txtarea_op = urlencode(‘文字列’);
$textarea_val = $_POST[‘itemOption’][$post_id][$sku][$enc_txtarea_op];
if(isset($_POST)){
$text_length = mb_strlen($textarea_val);
if($text_length > 20 ){
$mes[$post_id][$sku] .= ‘文字数エラー’;
return $mes;
}
}
}しかし、やはり「文字数エラー」が表示されずに困っております。
なにか考えられる原因はありますでしょうか?
テーマは、オリジナルのテーマを使用してますが、関係ありますか?度々のご質問で大変恐縮ですが、何卒御教示の程宜しくお願い致します。
lareve参加者kitamuuu様
御教示いただきありがとうございます。
小生の知識不足で何度も質問し申し訳ありませんが
追加で御教示いただきたくお願いいたします。下記のような記述をしたのですが、うまくいきませんでした。
オプション名は「文字列」という名前を付けてます。$enc_txtarea_op = urlencode(‘文字列’);
$textarea_val = $_POST[‘itemOption’][$post_id][$sku][$enc_txtarea_op];
$text_length = mb_strlen($textarea_val);add_filter( ‘usces_filter_incart_check’, ‘my_incart_check’, 10, 3 );
function my_incart_check($mes, $post_id, $sku){
if($text_length > 20 ){
$mes[$post_id][$sku] .= ‘文字数エラー’;
return $mes;
}
}また、御教示いただきました下記の記述を試したところ
[カートへ入れる]を押すとカート画面へは移動しなくなったのですが
「エラー」の文字が画面上に出力されません。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;
}お手数おかけし申し訳ありませんが、何卒御教示の程宜しくお願い致します。
- この返信は10年、 4ヶ月前にlareveが編集しました。
lareve参加者お世話になります。
上記の件、もうすこし自分で調べてみてfunctios.phpに下記のような記述をしましたが
画面が真っ白になってしまって動きません。wordpressのエラーになってしまうようです。
いったいどのように記述したら良いのでしょうか?<やりたいこと>
所定のテキストエリアの文字数が20文字を超えていたら「最大文字数を超えています」の
エラーメッセージを表示する。<functios.phpへの記述>
/* 文字数制限 */
add_filter(‘usces_filter_incart_check‘,’my_incart_check’,10);
function my_incart_check($mes) {
var text_length = $(#”itemOption[846]”).val().length;
if(text_length > 20 ){
$mes = ‘最大文字数を超えています’;
}
return $mes;
}<備考>
テキストエリアのidがitemOption[846]となっていました。すみませんが、御教示下さい。
よろしくお願い致します。lareve参加者お世話になります。
すみません。
プログラムについて、あまり詳しくない為、まずはフックの使い方を少し勉強しましたが、やはりどのようなプログラムを記述すれば良いのか分かりません。functios.phpに下記のような感じのプログラムを記述すれば良さそうということは分かりましたが、具体的にどのように記述すればいいのかが・・・?
add_filter(‘usces_filter_incart_check ‘, ‘my_incart_chek’, 10, 3);
function my_my_incart_chek() {
ここから下をどのような記述にしたら良いのか分かりません。やりたいことは、テキストエリアの文字数が10文字を超えていたら「文字数が多すぎます」のようなエラーメッセージを表示したいのですが。
申し訳ありませんが、再度御教示の程宜しくお願い致します。
lareve参加者返信いただきありがとうございます。
試してみようと思います。lareve参加者返信いただき有難うございます。
やはり商品登録前から導入しておく方が良さそうですね。
助かりました。有難うございました。
lareve参加者返信いただきありがとうございます。
説明不足で申し訳ありません。
やりたいことは、途中でダウンロード販売を導入したいと思っており
質問させていただきました。最初のうちは、サービス販売のみ(PEYPAL支払い)を予定しております。
行く行くはダウンロード販売の商品も登録することを考えている為
途中からDLSellerを導入したいと思っていますが、導入前に登録した
サービス販売の商品や商品ページ等に不具合が発生しないか懸念しております。継続課金については、特に検討しておりません。
ただ単にダウンロード販売を追加できれば問題ありません。この内容について、DLseller以外のプラグインで対応可能であればそちらの
プラグインを導入したいと思います。以上、御教示の程宜しくお願い致します。
-
投稿者投稿