受注リストの対応状況の文字列に色を設定したい

2015 年 10 月 20 日

ホーム フォーラム 使い方全般 受注リストの対応状況の文字列に色を設定したい

このトピックには6件の返信が含まれ、2人の参加者がいます。1 年、 10 ヶ月前 nanbu さんが最後の更新を行いました。

7件の投稿を表示中 - 1 - 7件目 (全7件中)
  • 投稿者
    投稿
  • #76128

    twinpiltzdaze
    参加者

    いつも有難うございます。

    今回受注に際して処理状況を追加して、文字色を設定したいと考えました。
    そこでネットで検索して下記のフィルターフックを使用し、対応状況を追加する事ができました。

    function ups_order_status($management_status){
    $management_status[‘custom1’] = ‘入金済み’;
    return $management_status;
    }
    add_filter(‘usces_filter_management_status’,’ups_order_status’);

    上記のコードをfunctions.phpに記述することで、「入金済み」という項目を追加する事はできましたが、受注リスト画面では「新規受付」等と同じ黒色の文字で表示されます。
    「発送済み」は緑色(td class=”green”)で表示されますが、これと同じように色を変える、もしくはclassを付与させる事は出来ますでしょうか?

    宜しくお願い致します。

    #76156

    nanbu
    参加者

    こんにちは

    ‘usces_filter_order_list_detail’と言うフィルターで、1行を丸ごと書き換える方法しかないかと思います。

    #76338

    twinpiltzdaze
    参加者

    nanbu様

    ご回答ありがとうございました。
    いただいてからいろいろと調べてやってみたのですが、
    「usces_filter_order_list_detail」についての情報があまり得られず、
    私自身もWeb上にあるソース等をコピーして動作を確認する程度の技術しかないためにまだ実装できておりません。

    もし宜しければ「usces_filter_order_list_detail」を使用して、「入金済み」の項目に色をつけるやり方をご教授頂けますと大変有り難いのですが可能でしょうか?
    現状は

    function ups_order_status($management_status){
    $management_status[‘custom1’] = ‘入金済み’;
    $management_status[‘custom2’] = ‘注文確認済み’;
    return $management_status;
    }
    add_filter(‘usces_filter_management_status’,’ups_order_status’);

    というコードをfunctions.phpに追加し、上記2つの項目を追加しております。
    これらにそれぞれ異なった色を付けられると良いのですが・・・。

    どうぞ宜しくお願い致します。

    #76351

    twinpiltzdaze
    参加者

    自己解決しました。

    今回は管理画面内に独自のjsを読み込ませて、jqueryのreplaceを使用して文字色を付けました。
    かなり強引なやり方ではありますがひとまず対応させる事が出来ました。

    ■管理画面にjsを読み込ませる記述をfunctions.phpに追加

    function _register_custom_js( ) {
    $_custom_js = ‘<script type=”text/javascript” src=”/js/customadmin.js”></script>’;
    echo $_custom_js . “\n”;
    }

    add_action(‘admin_head’, ‘_register_custom_js’);

    ■customadmin.jsの中身

    jQuery(document).ready( function($) {

    $(‘#mainDataTable td:nth-child(12)’).each(function(){
    var txt = $(this).html();
    $(this).html(
    txt.replace(/色を付けたい文字列1/g,'<span style=”color:red”>色を付けたい文字列1</span>’).replace(/色を付けたい文字列2/g,'<span style=”color:red”>色を付けたい文字列2</span>’)
    );
    });

    });

    「処理状態」の列のみをeachするようにしてみましたので、
    今後アップデート等で列のレイアウトが変わると効かなくなるかと思いますので
    その都度「(12)」の数字を変えるか「(12)」そのものを取るかで考えています。

    #76386

    nanbu
    参加者

    その様な方法でも良いかと思います。
    ただ‘admin_head’は全ての管理画面で読み込まれます。下記の様にすれば受注リスト画面だけになりますのでお試しください。

    
    add_action(‘admin_head-welcart-shop_page_usces_orderlist’, ‘_register_custom_js’);
    
    #76418

    twinpiltzdaze
    参加者

    nanbu様

    ご返信ありがとうございました。ご丁寧にありがとうございます。その方がスマートですね。
    ただ先ほど試してみたのですが、うまくjsを読み込んでくれませんでした。
    テストした際は「‘」を「’」に変えて試しました。

    またadmin_head-welcartの様に「_」や「-」が混在していますが、こちら問題ありませんでしたでしょうか?

    今のところadmin_headで他に支障無く動いておりますのでひとまず問題はありません。

    宜しくお願い致します。

    #76466

    nanbu
    参加者

    またadmin_head-welcartの様に「_」や「-」が混在していますが、こちら問題ありませんでしたでしょうか?

    はい、その通りです。

    管理画面にjsを読み込ませる方法は、こちらのサイトによくまとめられているようですのでご参考までに。
    http://memocarilog.info/wordpress/7570

    なお、jsを読み込ませる方法は、admin_enqueue_scripts を使うやり方が最も良い方法かと思います。

    • この返信は1 年、 10 ヶ月前に  nanbu さんが編集しました。
7件の投稿を表示中 - 1 - 7件目 (全7件中)

このトピックに返信するにはログインが必要です。