2017-12-19 12 views
4

で管理順リストページにカスタムURLのリンクを追加します。私は、各注文の追跡番号を表示する新しい列を作成しました。しかし、私は追跡番号をクリック可能にしたいと思います。または、代わりに、新しいタブを開き、トラッキング番号列の番号を追跡するアクションボタンを作成します。こんにちは、私はバックエンドで私の管理順序リストにボタンやリンクを追跡AfterShipを追加しようとしていますWooCommerce

次のように私は必要なURLの形式は次のとおりです。 https://track.aftership.com/LS325245095CN?追跡番号に付加疑問符があることが

注意してください。追跡番号を入力するときには疑問符記号が使用されないので、この操作を行う必要があります。私はここにStackOverflowの上でこのコードを持って

//Start Add Tracking Number to Admin Orders List 
//Start Add Header to List 
add_filter('manage_edit-shop_order_columns', 'custom_shop_order_column', 
12, 1); 
function custom_shop_order_column($columns) 
{ 
// Set "Actions" column after the new colum 
$action_column = $columns['order_actions']; // Set the title in a variable 
unset($columns['order_actions']); // remove "Actions" column 


//add the new column "New Tracking Number" 
$columns['order_astracking'] = '<span>'.__('Tracking Number','woocommerce').'</span>'; // title 

// Set back "Actions" column 
$columns['order_actions'] = $action_column; 

return $columns; 
} 

//END Add Header to List 
//START Add Tracking Number Data to List 
add_action('manage_shop_order_posts_custom_column' , 
'custom_order_list_column_content', 10, 2); 
function custom_order_list_column_content($column, $post_id) 
{ 

// HERE get the data from your custom field (set the correct meta key below) 
$astracking = get_post_meta($post_id, '_aftership_tracking_number', true); 
if(empty($astracking)) $astracking = ''; 

switch ($column) 
{ 
    case 'order_astracking' : 
     echo '<span>'.$astracking.'</span>'; // display the data 
     break; 
} 
} 
//END Add Tracking Number Data to List 

//START Make Tracking Number Data Searchable in Admin Orders List 
add_filter('woocommerce_shop_order_search_fields', 
'astracking_search_fields', 10, 1); 
function astracking_search_fields($meta_keys){ 
$meta_keys[] = '_aftership_tracking_number'; 
return $meta_keys; 
} 
//END Make Tracking Number Data Searchable in Admin Orders List 

//END Add Tracking Number to Admin Orders List 

..素晴らしいリソース:ここ

は、私がバックエンドで管理者の受注リストで追跡番号欄を表示するために使用していたコードです。

Add custom columns to admin orders list in WooCommerce backend

あなたが提供できるすべてのヘルプや提案は、いただければ幸いです。前もって感謝します!

+0

:あなたのコードでは、この機能を置き換えますクリッカブルあなたの追跡番号を作るために今すぐ

enter image description here


:あなたのような何かを得るだろうとても素晴らしいです、このコード – LoicTheAztec

答えて

2

新しいアップデートのためのWC 3.3+:ここCustom action button in admin orders list on Woocommerce 3.3+

は(でリンクを開く追跡に関連したカスタムリンクを管理順序リストでアクションボタンを追加する方法です要求されたように、新しいウィンドウ

// Add your custom order action button 
add_action('woocommerce_admin_order_actions_end', 'add_custom_order_actions_button', 100, 1); 
function add_custom_order_actions_button($order) { 

    // Get the tracking number 
    $traking_number = get_post_meta($order->get_id(), '_aftership_tracking_number', true); 
    if(empty($traking_number)) return; 

    // Prepare the button data 
    $url = esc_url('https://track.aftership.com/'.$traking_number.'?'); 
    $name = esc_attr(__('Tracking', 'woocommerce')); 
    $action = esc_attr('view tracking'); // keep "view" class for a clean button CSS 

    // Set the action button 
    printf('<a class="button tips %s" href="%s" data-tip="%s" target="_blank">%s</a>', $action, $url, $name, $name); 
} 

// The icon of your action button (CSS) 
add_action('admin_head', 'add_custom_order_actions_button_css'); 
function add_custom_order_actions_button_css() { 
    echo '<style>.view.tracking::after { font-family: woocommerce; content: "\e005" !important; }</style>'; 
} 

コードfunctiに行きますアクティブな子テーマ(またはテーマ)のon.phpファイル、またはプラグインファイル内の。

テスト済みで動作します。バージョン私が持っている3.3+にwoocommerceを更新した場合

add_action('manage_shop_order_posts_custom_column', 'custom_order_list_column_content', 10, 2); 
function custom_order_list_column_content($column, $post_id) 
{ 

    // HERE get the data from your custom field (set the correct meta key below) 
    $astracking = get_post_meta($post_id, '_aftership_tracking_number', true); 
    if(empty($astracking)) $astracking = ''; 

    switch ($column) 
    { 
     case 'order_astracking' : 
      echo '<span><a href="https://track.aftership.com/'.$astracking.'?" target="_blank">'.$astracking . '</a></span>'; // display the data 
      break; 
    } 
} 
+0

の新機能バージョンへのリンクを追加しました。よく働く!どうもありがとうございます。しかし、ただ一つの簡単な質問です。新しいタブまたはウィンドウでボタンを強制的にページを開くようにしたい場合は、URLを編集する必要があります。再度、感謝します。 – JessDaddy

+0

それはちょうどあまりにも素晴らしいです!魅力のように動作します。私はちょうど今...うまくいけば、新しいタブまたはウィンドウで開くように把握することができますのためのリンクやボタンを「ホイールクリック」ことができますね。しかし、これはすでに私が想像していたよりずっと簡単で優れています..もう一度感謝します。私はちょうど新しいウィンドウで開く]ボタンのリンクを取得する方法を発見した@JessDaddy – JessDaddy

+0

...私は私の答えコードを更新しました。ありがとう – LoicTheAztec

関連する問題