[解決済み] 内容確認ページの配送先情報フックが機能しない

フォーラム テンプレート(テーマ) [解決済み] 内容確認ページの配送先情報フックが機能しない

  • このトピックには5件の返信、3人の参加者があり、最後にdame1002により10年、 8ヶ月前に更新されました。
6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • 投稿者
    投稿
  • #52941
    dame1002
    参加者

    動作に関するご質問の場合は必ずご記入ください。


    WordPress のバージョン:3.5.1

    Welcart のバージョン:1.3.2

    ご利用のテーマ:Welcart e-Commerce

    症状を確認したブラウザ:

    サーバー(会社名、サービス名):

    SSLの利用: 無し

    WordPress のパーマリンク設定:


    こんにちは。

    いつも大変助かっております。

    内容確認ページで使用されている下記フックの挙動について教えて下さい。

    apply_filters(‘usces_filter_shipping_address_info’, $shipping_address_info);

    やりたいことは、内容確認ページに「国」を表示させないようにすることです。

    その為に、上記フックをfunction.phpに下記のように記述するのですが、配送先情報の中身がカラになってしまいます。お客様情報とその他の情報は中身があります。

    以下、ソースと画像を添付します。

    =======================

    add_filter(‘usces_filter_shipping_address_info’, ‘my_usces_filter_shipping_address_info’, 10, 1);

    function my_usces_filter_shipping_address_info($shipping_address_info) {

    $shipping_address_info = ‘<tr class="ttl"><td colspan="2"><h3>’.__(‘Shipping address information’, ‘usces’).'</h3></td></tr>’;

    $shipping_address_info .= usces_custom_field_info($data, ‘delivery’, ‘name_pre’, ‘return’);

    $shipping_address_info .= ‘<tr><th>’.__(‘Full name’, ‘usces’).'</th><td>’ . esc_html($values) . ‘ ‘ . esc_html($values) . ‘</td></tr>’;

    $furigana_delivery = ‘<tr><th>’.__(‘furigana’, ‘usces’).'</th><td>’ . esc_html($values) . ‘ ‘ . esc_html($values) . ‘</td></tr>’;

    $shipping_address_info .= apply_filters( ‘usces_filter_furigana_confirm_delivery’, $furigana_delivery, $type, $values );

    $shipping_address_info .= usces_custom_field_info($values, ‘delivery’, ‘name_after’, ‘return’);

    $shipping_country = (!empty($usces_settings[$values])) ? $usces_settings[$values] : ”;

    $shipping_address_info .= ‘

    <tr><th>’.__(‘Zip/Postal Code’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘Country’, ‘usces’).'</th><td>’ . esc_html($shipping_country) . ‘</td></tr>

    <tr><th>’.__(‘Province’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘city’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘numbers’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘building name’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘Phone number’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘FAX number’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>’;

    $shipping_address_info .= usces_custom_field_info($data, ‘delivery’, ‘fax_after’, ‘return’);

    return $shipping_address_info;

    }

    ==========================

    $valuesがうまくひっぱれていないのでしょうか。

    良い解決策があれば是非教えていただければと思います。

    宜しくお願いします。

    [attachment=11125,271]

    #67307
    dame1002
    参加者

    こんにちは。

    解決はしていませんが、

    進展がありましたので記載させていただきます。

    やはりusces_filter_shipping_address_infoのフックの引数に$valuesが無い為に、

    値が取得できていなかったようです。

    templete_func.phpを以下のように修正すると表示されました。

    $formtag .= apply_filters(‘usces_filter_shipping_address_info’, $shipping_address_info,$values);

    ただ、これをやれたとしてもお客様情報の方の国を非表示にはできません。

    templete_func.phpをいじいることになってしまうのは避けたい為、結局のところ他の方法を探すしかないのでしょうか。

    他に方法が御座いましたら教えていただけたらと思います。

    宜しくお願いします。

    #67308
    masuda-clair
    参加者

    うーんと

    $valueって上記フィルターのある関数で確認すると

    上の方で$dataの値を一時的に渡しているだけのようですが・・・

    $dataからとってくるも良し

    フィルタの最初で「global $value」って書けば

    取ってこれませんでした?

    #67309
    dame1002
    参加者

    こんにちは。

    masuda-clair様、コメント有難う御座います。

    とても有難いです。

    早速アドバイスいただいた内容でやってみましたが、解決にはいたりませんでした。

    一応フィルタの最初で、「global $value;」を宣言するパターンと「$values = $data[$type];」と宣言するパターンでやってみました。

    私のやり方がまずい可能性もありますのでソース記載しておきます。

    add_filter(‘usces_filter_shipping_address_info’, ‘my_usces_filter_shipping_address_info’, 10, 1);

    function my_usces_filter_shipping_address_info($shipping_address_info) {

    //global $value;

    //$values = $data[$type];

    $shipping_address_info = ‘<tr class=”ttl”><td colspan=”2″><h3>’.__(‘Shipping address information’, ‘usces’).'</h3></td></tr>’;

    $shipping_address_info .= usces_custom_field_info($data, ‘delivery’, ‘name_pre’, ‘return’);

    $shipping_address_info .= ‘<tr><th>’.__(‘Full name’, ‘usces’).'</th><td>’ . esc_html($values) . ‘ ‘ . esc_html($values) . ‘</td></tr>’;

    $furigana_delivery = ‘<tr><th>’.__(‘furigana’, ‘usces’).'</th><td>’ . esc_html($values) . ‘ ‘ . esc_html($values) . ‘</td></tr>’;

    $shipping_address_info .= apply_filters( ‘usces_filter_furigana_confirm_delivery’, $furigana_delivery, $type, $values );

    $shipping_address_info .= usces_custom_field_info($values, ‘delivery’, ‘name_after’, ‘return’);

    $shipping_country = (!empty($usces_settings[$values])) ? $usces_settings[$values] : ”;

    $shipping_address_info .= ‘

    <tr><th>’.__(‘Zip/Postal Code’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr style=”display:none;”><th>’.__(‘Country’, ‘usces’).'</th><td>’ . esc_html($shipping_country) . ‘</td></tr>

    <tr><th>’.__(‘Province’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘city’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘numbers’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘building name’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘Phone number’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘FAX number’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>’;

    $shipping_address_info .= usces_custom_field_info($data, ‘delivery’, ‘fax_after’, ‘return’);

    return $shipping_address_info;

    }

    お忙しいなか、ご意見いただきまして有難う御座います。

    宜しくお願いします。

    #67310
    yskysmr
    キーマスター

    こんにちは。

    「usces_filter_shipping_address_info」は、配送先情報のみのフックです。内容確認ページにはお客様情報にも「国」がありますが、そちらは表示しておいてよいでしょうか。

    配送先情報の「国」だけを非表示にしたい場合は、「usces_filter_shipping_address_info」で実現可能です。(少々強引な手法にはなりますが。)

    お客様情報も編集したい場合は、「usces_filter_apply_addressform_confirm」をお使いください。

    第3引数に $data がありますので、

    global $usces;

    switch( $type ) {

    case ‘confirm’:

    case ‘member’:

    $values = $data;

    break;

    case ‘customer’:

    case ‘delivery’:

    $values = $data[$type];

    break;

    }

    $values = $usces->stripslashes_deep_post($values);

    としてからお使いください。

    販売対象国がひとつだけのときは、「国」を非表示にして欲しいというご要望は、以前からいただいています。お待たせして申し訳ありませんが、いずれ対応したいと思います。

    #67311
    dame1002
    参加者

    こんにちは。

    yskysmr様、お忙しいなかご返信有難う御座います。

    私の場合はお客様情報の方も非表示にしたかったので、いただいた情報で試したところ、無事に解決いたしました。

    有難う御座いました。

    私の作成したソースを記載しておきます。

    ==================

    add_filter(‘usces_filter_apply_addressform_confirm’, ‘my_usces_filter_apply_addressform_confirm’, 10, 3);

    function my_usces_filter_apply_addressform_confirm($formtag, $type, $data) {

    global $usces;

    switch( $type ) {

    case ‘confirm’:

    case ‘member’:

    $values = $data;

    break;

    case ‘customer’:

    case ‘delivery’:

    $values = $data[$type];

    break;

    }

    $values = $usces->stripslashes_deep_post($values);

    $formtag = ”;

    $formtag .= usces_custom_field_info($data, ‘customer’, ‘name_pre’, ‘return’);

    $formtag .= ‘<tr><th>’.__(‘Full name’, ‘usces’).'</th><td>’ . esc_html($values) . ‘ ‘ . esc_html($values) . ‘</td></tr>’;

    $furigana_customer = ‘<tr><th>’.__(‘furigana’, ‘usces’).'</th><td>’ . esc_html($values) . ‘ ‘ . esc_html($values) . ‘</td></tr>’;

    $formtag .= apply_filters( ‘usces_filter_furigana_confirm_customer’, $furigana_customer, $type, $values );

    $formtag .= usces_custom_field_info($data, ‘customer’, ‘name_after’, ‘return’);

    $customer_country = (!empty($usces_settings[$values])) ? $usces_settings[$values] : ”;

    $formtag .= ‘

    <tr><th>’.__(‘Zip/Postal Code’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr style=”display:none;”><th>’.__(‘Country’, ‘usces’).'</th><td>’ . esc_html($customer_country) . ‘</td></tr>

    <tr><th>’.__(‘Province’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘city’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘numbers’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘building name’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘Phone number’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘FAX number’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>’;

    $formtag .= usces_custom_field_info($data, ‘customer’, ‘fax_after’, ‘return’);

    $shipping_address_info = ‘<tr class=”ttl”><td colspan=”2″><h3>’.__(‘Shipping address information’, ‘usces’).'</h3></td></tr>’;

    $shipping_address_info .= usces_custom_field_info($data, ‘delivery’, ‘name_pre’, ‘return’);

    $shipping_address_info .= ‘<tr><th>’.__(‘Full name’, ‘usces’).'</th><td>’ . esc_html($values) . ‘ ‘ . esc_html($values) . ‘</td></tr>’;

    $furigana_delivery = ‘<tr><th>’.__(‘furigana’, ‘usces’).'</th><td>’ . esc_html($values) . ‘ ‘ . esc_html($values) . ‘</td></tr>’;

    $shipping_address_info .= apply_filters( ‘usces_filter_furigana_confirm_delivery’, $furigana_delivery, $type, $values );

    $shipping_address_info .= usces_custom_field_info($values, ‘delivery’, ‘name_after’, ‘return’);

    $shipping_country = (!empty($usces_settings[$values])) ? $usces_settings[$values] : ”;

    $shipping_address_info .= ‘

    <tr><th>’.__(‘Zip/Postal Code’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr style=”display:none;”><th>’.__(‘Country’, ‘usces’).'</th><td>’ . esc_html($shipping_country) . ‘</td></tr>

    <tr><th>’.__(‘Province’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘city’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘numbers’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘building name’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘Phone number’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>

    <tr><th>’.__(‘FAX number’, ‘usces’).'</th><td>’ . esc_html($values) . ‘</td></tr>’;

    $shipping_address_info .= usces_custom_field_info($data, ‘delivery’, ‘fax_after’, ‘return’);

    $formtag .= apply_filters(‘usces_filter_shipping_address_info’, $shipping_address_info);

    return $formtag;

    }

    ================

    今回も大変助かりました。

    masuda-clair様やyskysmr様のように、アドバイスいただける方がいるのはとても心強いです。

    >お待たせして申し訳ありませんが、いずれ対応したいと思います。

    いえいえ、無償で使用させていただけるだけでとても感謝しております。対応されたおりには、すぐに活用させていただきます。

    有難う御座いました。

6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • このトピックに返信するにはログインが必要です。