スーパーカブのレッグシールドを交換した。

2014年05月30日 18時00分 正午の月齢:1.7  月名:二日月  潮汐:大潮 月齢:1.7[二日月] 潮汐:大潮
(最終更新日:2017年06月24日)
12年前に投稿 | 自動車・バイク | コメントはありません

2分ぐらいで読めます。

買ってから今までこけたことがなかったのですが、とうとうユミコちゃんがやってしまいました。体にケガがなくて何よりですが、スーパーカブはちょっと負傷してしまったようです。たまたま10年近く放置していたレッグシールドがあるので、交換に挑戦してみました。

supercub-legshield_01

バリッと割れたレッグシールド。別にこのままでもまったく問題ないのですが、ちょっと痛々しいので交換しましょう。工具は10mm/12mmのメガネレンチ1本のみ。

supercub-legshield_02

くふぅ、デリケートゾーンの具をさらけ出して、あられもない姿。個人的にはこんなのもアリかなとは思うのですが、熱々のエンジンやエキマニに接触したら怖いので、やっぱりレッグシールドを付けます。

supercub-legshield_04

裏庭に放置していたので、泥や枯れ葉やジガバチの巣などがこびりついていたのでゴシゴシ洗いました。なんとかホワイトニング終了。

supercub-legshield_05

プラグ穴のふたとゴムブッシュは再利用します。エア・アイドリングスクリュー部分のふたは風化して去年砕け散ってしまったので存在しません。無いなら無いでアイドリングの調整はしやすいので、まぁどっちでもいいかな。

supercub-legshield_06

何の問題もなく元通り。古いレッグシールドは次回の不燃物の日に出すことにします。

supercub-legshield_08

実はステップが少し曲がっているのですが、足を乗せたところあまり違和感が無かったので当分はこのままで。修正したいのですが、ゴムを外すのが大変そうで…。

WordPressの投稿に「この記事は○年前の記事」かを表示させてみた。

2014年05月29日 18時00分 正午の月齢:0.7  月名:新月  潮汐:大潮 月齢:0.7[新月] 潮汐:大潮
(最終更新日:2019年09月17日)
12年前に投稿 | WordPress | コメントはありません

3分ぐらいで読めます。

アクセスログを眺めていると、結構2008年ごろに書いた記事の閲覧が多くて、見ていただいて大変ありがたいのですけど情報が陳腐化している場合がしばしばあります。それを理解してくれていればいいのですが、中には「チクショー、だまされた!!」なんて思う人がいるかも知れないしいないかも知れない。巷にはブログのクセに投稿日が表示されていないことが多々あって、自分自身「何だよコレ、いつの情報だよっ!!(怒)」となってしまいがち。そんなチクショーリスク回避のために古い記事に対して警告が出るようにしようと思ったわけです。

もともと当サイトは投稿日・月齢・潮汐の右に、どれくらい前に投稿したのか表示しています(さらに旧暦・六曜も表示していて無敵モード)。今回さらに警告を出すことで、自己満足度を高めることにしました。参考にしたのは「[作ってみた] 「この記事は○年前の記事です」と表示警告してくれるwordpressプラグイン」。これを元に、プラグインとしてではなく、functions.phpに記述してみましたー。作者自身「正直、functions.phpに書けば済む内容なんですが…」って言ってるし。

functions.phpに追記したのはこんな感じ。

function show_old_alert($content) {
if(!is_single($post)) return $content;

$diff = strtotime(date("Ymd")) - strtotime(get_the_date("Ymd"));
$diff = $diff / 60 / 60 / 24;
if($diff > 365){
$diff = floor($diff / 365);
return "<p class=\"oldalert\">この記事は".$diff."年以上前のものです。情報が古い場合があります。</p>".$content;
}else{
return $content;
}
}
add_action( 'the_content', 'show_old_alert' );

P要素として、クラスを付けています。あとはCSSで化粧直し。

.oldalert {
color: #ff0099;
margin-bottom: 10px;
text-align: center;
}

最初、クラスを付けるときに「class="oldalert"」と書いてハマりました。エスケープを忘れずに「class=\"oldalert\"」と書きましょうネ。

あとちょっと気になる点ですが、

old-alert

潮汐の横には「4年前」となっていて、今回追加した警告は「3年以上前」となっています。どちらも間違っているわけではないのですが、日数の数え方が違うとこんな感じになるっていうことで。

WordPressで半角カナ・全角英数字を変換するのを、functions.phpに書く。

2014年05月27日 18時00分 正午の月齢:28.2  月名:二十九日月  潮汐:大潮 月齢:28.2[二十九日月] 潮汐:大潮
(最終更新日:2019年09月17日)
12年前に投稿 | WordPress | コメントはありません

2分ぐらいで読めます。

半角カナもさることながら、全角英数字が大っっっっ嫌いなのです。で、普段からWordPressの投稿時に使うことはないはずなのですが、万一混じりこんでしまったらイケナイ。

そんなわけで、半角カナや全角英数字(全角スペースも)を全角カナや半角英数字にするべく、今までformatting.phpに次の記述を加えて、美を追求してきました。

$curl = mb_convert_kana($curl,"asKV"); //全角英数字と半角カナを排除

ただこの方法だと、アップデートのたびに修正しなくてはならないので、なんとかならないものかなぁと思っていたのも事実。(アップデート自体はそんなに頻繁にあるわけじゃないんですけどね。)

いろいろと探してみた結果、テーマファイル内のfunctions.phpに記述することで解決できるようなので早速実装してみました。参考にしたサイトは「WordPressの記事投稿時に半角カナ、全角英数字を全角カナ、半角英数字に変換する」

function convert_content( $data ) {
$convert_fields = array( 'post_title', 'post_content' );
foreach ( $convert_fields as $convert_field ) {
$data[$convert_field] = mb_convert_kana( $data[$convert_field], 'asKV', 'UTF-8' );
}
return $data;
}
add_filter( 'wp_insert_post_data', 'convert_content' );

オリジナルは「aKV」ですが、ここでは「asKV」にしています。なんのこっちゃ? という人は「全角文字/半角文字を変換する mb_convert_kana()」を見てネ。

これでブサイクな全角英数字撲滅がより確実なものとなりましたー。

Firefoxで、ウェブフォントの表示と「Webページが指定したフォントを優先」しないことを両立させる。

2014年05月24日 18時00分 正午の月齢:25.2  月名:二十六夜  潮汐:若潮 月齢:25.2[二十六夜] 潮汐:若潮
(最終更新日:2019年09月02日)
12年前に投稿 | ウェブ・IT関係 | コメントはありません

3分ぐらいで読めます。

普段からFirefoxを使っているわけですが、「Webページが指定したフォントを優先する」のチェックは外しています。

firefoxfont

これで、ウェブサイトから押し付けられたフォントを使うことなく、長年親しんでいるMS Pゴシックを使えているわけですが、最近問題が出てきました。詳しい内容は「WordPress3.8をどうしても使えない理由」を見てください。とにかく、見出し程度ならともかく本文にまで「デザイナーの俺様が指定する美しいフォントを使って閲覧しやがれ。」っていう傲慢な態度が気に入らない。

とまぁ、そんなこんなでMS Pゴシックでの閲覧に統一していたわけですが、だんだんウェブフォント(「Webフォント」って書いたほうがGoogleの検索件数は多いんですけど、なんか混ぜて書くのがイヤなのですよ。)の使用率が高まってきてあちこちで使われてきたので、無視できないようになってきました。それでも見た目のコントロールだけのウェブフォントだったらガン無視できていたのですが、そういうわけにもいかないのが「WordPress3.8をどうしても使えない理由」に挙げたWordPress。ま、自分は3.6.1を使い続けるとしても、お客さんに「ウェブフォントってうざいですよね。バージョンアップなんてしなくていいですよ。」とは言えない。そんなわけで否応なしにWordPress3.8以上の管理画面とのふれあいの場が増殖していきます。そのつど「Webページが指定したフォントを優先する」のチェックを入れて作業する(メニューのアイコンくらい無視できるのですが、ビジュアルリッチエディタはアイコンが見えないとどうしようもない)のもどうかと思います。

「なんとかWordPressのウェブフォントアイコンと他のウェブサイトの本文をMS Pゴシックで表示されることを両立できないかな」ということで、試行錯誤の上ほぼ両立できるようになったので、ちょっと紹介しておきますネ。

Firefoxのオプションから設定したのではうまくいかないので、プロファイルフォルダにCSSファイルを作ります。場所がわからなければ「プロファイルフォルダの場所(Firefox / Thunderbird)」を参考に。今回は「"%USERPROFILE%\Application Data\Mozilla\Firefox\Profiles\"」を「ファイル名を指定して実行」欄に入力して、直接場所にたどり着きました。その中の「*******.default」フォルダを開きます。chromeフォルダがある場合はそれを開きます。ない場合はchromeフォルダを作ります(Firefox 4.0 からは、chromeフォルダが無くなった)。

その中に「userContent.css」を作ってUTF-8で保存(もともとあれば開いて追記)。CSSの中には、

body {font-family:"MS Pゴシック" !important;}

と記入します。

さて、Firefoxを再起動してみると…

wordpresswebfonticon

特殊な開き方をするウィンドウや変に埋め込まれたブロック等はMS Pゴシックにはならないものの、とりあえずほとんどのサイトの文章はMS Pゴシックで表示されるようになりました。さらにWordPressのアイコンも表示されています。これでようやく自分自身のサイトもWordPress3.8以上を心置きなく使えそうです。

EC-CUBE 0円商品のPayPal決済を回避する。

2014年05月23日 18時00分 正午の月齢:24.2  月名:二十五日月  潮汐:長潮 月齢:24.2[二十五日月] 潮汐:長潮
(最終更新日:2019年09月02日)
12年前に投稿 | ウェブ・IT関係 | コメントはありません

1分ぐらいで読めます。

引き続きのEC-CUBE&PayPalネタ。

ま、記事にするほどでもないのですが、内部をゴニョゴニョといじって0円商品を登録したり、1円以上の価格の商品だけどポイントを利用して支払額が0円になったりしたときにPayPal決済を選択していたらちょっとマズいなー、と思ったのですが、自己解決しました。

billsetting

「管理画面」→「基本情報管理」→「支払方法設定」→「支払方法登録・編集」と進んで、「利用条件(円)」を「1円~」にすれば、PayPal決済を選べなくなるんですね。

payform

とまぁ、こんな感じで0円だとPayPalが使えなくなりますー。よくできてるなぁ。

EC-CUBE ダウンロード商品で通常モードのPayPal決済に対応させる。

2014年05月22日 18時00分 正午の月齢:23.2  月名:真夜中の月  潮汐:小潮 月齢:23.2[真夜中の月] 潮汐:小潮
(最終更新日:2019年09月02日)
12年前に投稿 | ウェブ・IT関係 | コメントはありません

6分ぐらいで読めます。

月々の使用料無料でクレジットカード決済を導入できるのがPayPal決済のメリット。PayPal決済を導入するには「PayPalビジネスアカウント」の取得が必要ですが、これも無料で手続きできます。で、決済方法にもいろいろな種類があってまた迷うわけですが、ペイパルアカウントを持っていない一見のお客さんにもクレジットカードを使ってもらおうと思うと、「ウェブペイメントスタンダード」しかないようです。(「エクスプレスチェックアウト」は画面遷移が少なくて魅力的なのですが、お客さんがペイパルアカウントを持っているか、決済時にアカウントを作るかしなければならないんです。)

このウェブペイメントスタンダードは、「自サイトで購入手続き→PayPal決済画面に遷移→自サイトに戻る」という流れになります。この流れを実現するために必要なモジュールが「ペイパルエクスプレス チェックアウト決済モジュール」。エクスプレスとついていますが、スタンダードもこのモジュールで対応できます。

早速テストしてみて最初にハマッたのが、パーミッションの設定。public_html/user_data内のpaypal_cancel.phppaypal_recv.php666になっているとうまく動かないようなので644にしてやります。ただこの症状、必ず発生するってわけでもなくて、3サイトで試したところ1箇所だけで発生しました。いずれにしても導入時には確認しておいたほうがいいかも知れません。

特に問題がなければ、以上で設定は終了。クレジットカードに対応したショッピングサイトの完成です。(ホントは決済完了のステイタスをEC-CUBEに連携するとか、いろいろと課題はあるんですケド。)

…さて。

ここからが本題なのですが、通常発送の商品のみを扱うのだったら問題ないのですが、ダウンロード商品を扱う場合に大変なことがおこります。

paypal-link

通常なら、この画面がしばらく表示された後に「PayPal決済サイトへ遷移しています。しばらくお待ち下さい。」の文字とともにPayPalの画面に遷移するのですが、ダウンロード商品の場合はここで止まってしまい、先に進めません。仕方がないので「戻る」ボタンで戻るのですが、これじゃあPayPalでダウンロード商品を購入できません。

調べてみてもなかなか情報が見つからなかったのですが、ようやくそれっぽい情報を見つけることができました。

この中にあった回答

ウェブペイメント・スタンダードでは、セラープロテクション(売り手保護 https://www.paypal.com/jp/cgi-bin/webscr?cmd=xpt/Marketing/securitycenter/sell/SellerProtection-outside) の対応に伴って、配送先住所の入力が必須になっているため、ダウンロード商品の場合だとエラーになるようです。

data/downloads/module/mdl_paypal/LC_Page_Mdl_Paypal_Helper_Link.php の 147行目付近以降の EXIST_CHECK をはずしてみるといかがでしょうか。

とのことなので、早速該当する箇所を修正してみます。LC_Page_Mdl_Paypal_Helper_Link.phpの145行目からペイパルスタンダードのパラメータの記述が始まるのですが、「city」「address1」「state」「zip」「first_name」「last_name」の「array("EXIST_CHECK"), 」を消してやります。

$objFormParam->addParam("amount", "amount", STEXT_LEN, "n", array("NUM_CHECK", "EXIST_CHECK", "MAX_LENGTH_CHECK"), $arrOrder['payment_total']);

$objFormParam->addParam("undefined_quantity", "undefined_quantity", 1, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK"), PAYPAL_UNDEFINED_QUANTITY);

$objFormParam->addParam("city", "city", MTEXT_LEN, "KVa", array("EXIST_CHECK"), $arrShipping[$min]['shipping_addr01']);

$objFormParam->addParam("address1", "address1", MTEXT_LEN, "KVa", array("EXIST_CHECK"), $arrShipping[$min]['shipping_addr02']);

$objFormParam->addParam("state", "state", MTEXT_LEN, "KVa", array("EXIST_CHECK"), $this->arrPref[$arrShipping[$min]['shipping_pref']]);

$objFormParam->addParam("zip", "zip", MTEXT_LEN, "KVa", array("EXIST_CHECK"), $arrShipping[$min]['shipping_zip01'] . $arrShipping[$min]['shipping_zip02']);

$objFormParam->addParam("first_name", "first_name", MTEXT_LEN, "KVa", array("EXIST_CHECK"), $arrShipping[$min]['shipping_name02']);

$objFormParam->addParam("last_name", "last_name", MTEXT_LEN, "KVa", array("EXIST_CHECK"), $arrShipping[$min]['shipping_name01']);

これで、ダウンロード商品をPayPal決済できるようになりました。

ただ、副作用というか、ちょっと新たな問題が発生しました。上記のデータチェックはずしを行うとダウンロード商品が購入できるようになる代わりに、遷移した後の画面でPayPalアカウントを使わずにクレジット決済をしようとするときに表示される入力フォームの項目すべてを手で埋めなければなりません。ちなみに改造前のファイルの場合はこんな感じで、会員登録したときの氏名・住所等が最初から入っています。

paypal-reg

これをお客様サービスの低下と捉えるかどうかは微妙ですが、今のところどちらかを犠牲にしなければならない状態です。もっと核の部分をいじれば解決するんでしょうけど。

今回のファイル修正は、「ダウンロード商品を扱いたい」かつ「ペイパルウェブペイメントスタンダードを導入したい」場合に限ってのことなので、ダウンロード商品を扱わないのであればまったく関係のないお話なのでした。

 

Translate »