2017-12-19 38 views
4

안녕하세요, AfterShip 추적 버튼 또는 백엔드에서 내 관리 명령 목록 링크를 추가하려고합니다. 각 주문의 추적 번호를 표시하는 새 열을 성공적으로 만들었습니다. 그러나 추적 번호를 클릭 할 수있게하려고합니다. 또는 새 탭을 열고 추적 번호 열의 번호를 추적하는 작업 버튼을 만들 수도 있습니다.WooCommerce의 관리 주문 목록 페이지에 사용자 정의 URL 링크 추가

필요한 URL 형식은 다음과 같습니다. https://track.aftership.com/LS325245095CN?

추적 번호에 물음표가 추가되어 있습니다. 추적 번호를 입력 할 때 물음표 기호가 사용되지 않았으므로이 작업을 수행해야합니다. 여기에 유래에이 코드를 가지고

//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+

의 (a 의 링크를 열 추적과 관련된 사용자 정의 링크 관리 순서 목록에서 작업 버튼을 추가 할 수있는 방법입니다 요청에 따라 새 창) :

// 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

+0

@JessDaddy 방금 버튼 링크를 새 창에서 열 수있는 방법을 찾았습니다 ... 내 대답 코드를 업데이트했습니다. 감사합니다 – LoicTheAztec