Mizuho Ogino
投稿の際は下記の情報をお書き添えください。
-------------------------------------------
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)
症状を確認したブラウザ:
サーバー【重要】:(会社名、サービス名)
--------------------------------------------
フォーラムへの返信
-
投稿者投稿
-
Mizuho Ogino参加者
いつも丁寧なご対応ありがとうございます。
オフにすると定期商品の配送希望日も計算されないものと、勘違いしておりました。>ただ、こちらの説明書きにもありますとおり、「利用しない」を選択していても、定期購入商品が購入された場合は、次回配送日等の関係により、必ず「配送希望日」は算出されます。
遅まきながら仰せの文意を得ました。いらぬ手間を取らせてしまい申し訳ありませんでした。
Mizuho Ogino参加者hiroshi1950さんとnatsworksさんの症状はそれぞれ異なるようです。
hiroshi1950さんの問題は、プラグイン自体の有効化ができていない、またはjsが動いていないように思われます。natsworksさんの方はその他のプラグイン等によるリネーム機能とのコンフリクトの可能性が高そうです。image uploader はwelcartの公式プラグインではないので、私のウェブサイトで対応・更新の報告を行っておりますので、これ以上は、こちらでは対応致しかねます。以下でお願いいたします。
Mizuho Ogino参加者「配送希望日の自動計算」をオフにすると、問題は解消するのですが、定期購入以外の商品のみを購入するときにも上記の問題が発生するため、ご連絡した次第でした。
つまり、定期購入の商品は「自動計算」をONにしたいが、定期購入以外の商品では自動計算して欲しくない、という要望でした。
説明不足で申し訳ありません。可能であれば、ご検討いただけましたら、幸いです。
Mizuho Ogino参加者横から失礼します。
画像アドレスらして、jetpackのphotonをお使いなのではないでしょうか。photonはキャッシュ削除の機能がありませんので、差し替えたい場合、異なるファイル名のものをアップしなくてはなりません。welcartの使い方にもよりますが、画像を差し替えるなどの用途との併用には向いていないプラグインだと思います。Mizuho Ogino参加者意図の分かりにくい質問で失礼いたしました。
>同じポジションのプラグインが存在すると、WPがIDを変更してしまう
どうやらそうみたいですね。
ユニークIDにしていただくと、私の様な者にはとても嬉しいです。カスタマイズするユーザーの勝手にもかかわらず、迅速にご対応いただきありがとうございました!!Mizuho Ogino参加者4.5による使用変更なのですね。
メニューの名称を使用者にわかりやすく変更しているケースがありまして、質問させていただきました。これを機に、管理テーマを変更しておこうと思います。ありがとうございました。
Mizuho Ogino参加者usceshop.class.php内にisNumという関数がセットされていますが、旧バージョンはでnum = num + ”;の表記がありませんでした。おそらく数量をチェックしている箇所の !(uscesCart.isNum(quant))で0扱いされてスルーされていたのではないかと推測しています。試しに、各input[name*=’quant’]セレクタをinput抜きの[name*=’quant’]に変更する、またはisNum内のnum = num + ”;の表記を削除すると、エラーは起きませんでした。いずれにせよ本来意図した動作ではないでしょうが、セレクトボックスには数値しか入らないはずなので・・・^^;
現状テストサイトではセレクトボックスを用いていないので、該当するのは既存のサイトしかありません。ご確認いただけるようにレスキューナビからURLを送ります。
ちなみに該当箇所の出力後のhtmlは以下のようになっています。1.4シリーズでは動作していました。
<td class="quantity"><select name="quant[0][9999][WELCARTPRO]" class="quantity"><option value="1" >1</option><option value="2" selected>2</option></select><label class="delButtonLabel" for="delButton0"><input name="delButton[0][9999][WELCARTPRO]" class="delButton" id="delButton0" type="submit" value="削除" /></label></td>
Mizuho Ogino参加者すいません。書き損じがありました。修正。
add_action('usces_item_master_second_section', 'my_usces_item_master_second_section', 10, 2); function my_usces_item_master_second_section( $second_section, $post_id ){ $second_section .= '<script type="text/javascript" charset="utf-8"> var dmet = jQuery( "#meta_box_product_second_box" ).find( "input[id^=itemDeliveryMethod]" ); var dmet_checked = false; dmet.each(function(){ if ( jQuery(this).is(":checked") ) dmet_checked = true; }); if ( !dmet_checked ) dmet.first().prop({ "checked":"checked" }).change(); // 一つもチェックがない場合は最初のものにチェックを入れる if ( dmet.length === 1 ) dmet.first().parents( "tr.shipped" ).hide(); // inputが一つしかない場合は列を隠す </script>'; return $second_section; }
Mizuho Ogino参加者私もデフォルトで一つ目のものにチェックを入れられるように配送テーブルの直下にjsを書き出して処理しています。それに一行加えたものが以下のとおりです。functions.phpなどに記入すれば反映されると思います。
add_action('usces_item_master_second_section', 'my_usces_item_master_second_section', 10, 2); function my_usces_item_master_second_section( $second_section, $post_id ){ $second_section .= '<script type="text/javascript" charset="utf-8"> var dmet = jQuery( "#meta_box_product_second_box" ).find( "input[id^=itemDeliveryMethod]" ); var dmet_checked = false; dmethods.each(function(){ if ( jQuery(this).is(":checked") ) dmet_checked = true; }); if ( !dmet_checked ) dmethods.first().prop({ "checked":"checked" }).change(); // 一つもチェックがない場合は最初のものにチェックを入れる if ( dmethods.length === 1 ) dmethods.first().parents( "tr.shipped" ).hide(); // inputが一つしかない場合は列を隠す </script>'; return $second_section; }
Mizuho Ogino参加者>yousanさん
解決されたようで何よりです。いろいろいい加減な記憶と未検証の意見を勢いで書いてしまい申し訳有りません。一助になったならば幸いです。>kitamuuuさん
都度チェックしていただきありがとうございます^^;
言葉の綾というか、私の表現がまずかったですね。postと他のカスタム投稿とは原則posttype名で区分されているだけですので、おそらく通常の使用では問題は起きにくいと思ってます。変更してるのはrewriteの項目だけですしね。いずれにせよ、アップデート時にチェックする要素を増やすことには間違いないので、ウェブショップのような環境下では一層慎重になるべきかな、と私も思います。>nanbuさん
post_type_linkは出力されるリンクしか変更してくれないので、register_post_typeのrewriteで予め同じパーマリンクを設定していないと404になります。この場合、post_mime_typeがitemのものは表示されるが、それ以外の投稿は404になると思われます。itemとpostのパーマリンクを区別する方法は考えてみたのですが、現状思いつきません。Mizuho Ogino参加者「Custom Post Type Permalinks」ダメでしたか^^;
記憶違いですね、失礼いたしました。残った手としては、投稿タイプ「post」をカスタム投稿タイプとして再度レジストしてrewrite設定をするという手があります。「register_post_type」をfunctions.phpに追加します。
add_action( 'init', 'my_new_default_post_type', 1 ); function my_new_default_post_type() { register_post_type( 'post', array( 'labels' => array( 'name_admin_bar' => _x( 'Post', 'add new on admin bar' ), ), 'public' => true, '_builtin' => false, '_edit_link' => 'post.php?post=%d', 'capability_type' => 'post', 'map_meta_cap' => true, 'hierarchical' => false, 'rewrite' => array( 'slug' => 'myslug' ), 'query_var' => false, 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats' ), ) ); }
これで 「example.com/myslug/投稿スラッグ」というパーマリンクになります。しかしカスタム投稿と同じく既存のパーマリンク設定が効かないはず。ですので、上記設定後、改めてregister_post_typeした後で「Custom Post Type Permalinks」をインストールする、という手もあると思います(未検証です)。あと、「post」のパーマリンクだけを変えたいなら、以下をfunctions.phpに記述するだけでいけるのではないかと思います。
add_filter('post_type_link', 'my_new_default_post_type_link', 1, 3); function my_new_default_post_type_link( $post_link, $post = 0, $leavename = false ) { if ($post->post_type == 'post') return home_url( 'myslug/' . $post->ID ); else return $post_link; } add_action( 'init', 'my_new_default_rewrites_init' ); function my_new_default_rewrites_init(){ add_rewrite_rule( 'myslug/([0-9]+)?$', 'index.php?post_type=post&p=$matches[1]', 'top' ); }
以上、welcart込みで検証していませんので、動作は保証し兼ねます^^;
Mizuho Ogino参加者Custom Post Type Permalinksというプラグインをつかって、標準のパーマリンクを[/shop/%post_id%]に設定して、カスタム投稿ごとのパーマリンクを[/%post_id%]に設定すれば、ご希望の表示を実現できるのではないでしょうか。
Mizuho Ogino参加者itemcodeが取得できているなら、何の動作もない場合、$itemcode.’-4’というタイトルのファイルが存在しないということです。get_page_by_titleの第一因数がタイトルです。したがって、$itemcode-04.jpgならば、以下の通りですね。
$att = get_page_by_title( $itemcode.'-04', OBJECT, 'attachment');
もし、商品サブ画像適用ルールがハイフン2つであれば、連番前のハイフンもふたつにします。
$att = get_page_by_title( $itemcode.'--04', OBJECT, 'attachment');
あと、ノーイメージが出したかったら以下の様にしてやる必要があります。
if ( $att ) { echo wp_get_attachment_image($att->ID,'thumbnail'); } else { //ここにノーイメージ時の任意の処理を書く }
Mizuho Ogino参加者特定の画像名を取り出すのはwelcartの本来的な使い方ではないので、wordpressの関数群で処理されては如何でしょうか。
_itemCode–04.jpg であればget_page_by_titleで判定できると思います。$itemcode = get_post_meta( $post->ID, '_itemCode', true ); $att = get_page_by_title( $itemcode.'-4', OBJECT, 'attachment'); if ( $att ) echo wp_get_attachment_image($att->ID,'thumbnail');
Mizuho Ogino参加者ありがとうございます。
お言葉に甘えて、何かありましたら、遠慮なく聞かせていただきます。 -
投稿者投稿