编辑Woocommerce管理产品页面中的自定义产品选项卡内容

编辑Woocommerce管理产品页面中的自定义产品选项卡内容

问题描述:

在WooCommerce中,我想添加自定义全局产品选项卡,就像创建新产品时的其他信息一样。编辑Woocommerce管理产品页面中的自定义产品选项卡内容

我能够创建新标签,但无法更新创建新产品页面上的任何内容。

我可以在显示页面上看到它,但是如何通过产品编辑页面添加信息。我知道我可以使用自定义字段,但我希望在产品页面上有该字段,以便店铺经理或其他人填写此额外的运送标签。

我的代码是

add_filter('woocommerce_product_tabs', 'woo_new_product_tab'); 
function woo_new_product_tab($tabs) { 

    // Adds the new tab 
    $tabs['test_tab'] = array(
     'title'  => __('Shipping', 'woocommerce'), 
     'priority' => 50, 
     'callback' => 'woo_new_product_tab_content' 
    ); 

    return $tabs; 
} 

function woo_new_product_tab_content() { 
    // The new tab content 
    $prod_id = get_the_ID(); 
    echo'<p>'.get_post_meta($prod_id,'Shipping',true).'</p>'; 
} 

http://prntscr.com/h37kqv

+0

要在全局标签中添加什么样的信息? –

您可以管理产品的网页,让车间管理人员将内容添加为您定制产品标签添加自定义Metabox。你会得到这样的:

enter image description here

下面是代码:

// Adding a custom Meta container to admin products pages 
add_action('add_meta_boxes', 'create_custom_meta_box'); 
if (! function_exists('create_custom_meta_box')) 
{ 
    function create_custom_meta_box() 
    { 
     add_meta_box(
      'custom_product_shipping_field', 
      __('Custom Shipping Tab information', 'woocommerce'), 
      'add_custom_content_meta_box', 
      'product', 
      'normal', 
      'high' 
     ); 
    } 
} 

// Custom metabox content in admin product pages 
if (! function_exists('add_custom_content_meta_box')) 
{ 
    function add_custom_content_meta_box($post) 
    { 
     $value = get_post_meta($post->ID, '_shipping_tab', true) ? get_post_meta($post->ID, '_shipping_tab', true) : ''; 
     wp_editor($value, 'custom_shipping_tab', array('editor_height' => 100)); 
     echo '<input type="hidden" name="custom_product_field_nonce" value="' . wp_create_nonce() . '">'; 

    } 
} 


//Save the data of the Meta field 
add_action('save_post', 'save_custom_content_meta_box', 10, 1); 
if (! function_exists('save_custom_content_meta_box')) 
{ 

    function save_custom_content_meta_box($post_id) { 

     // We need to verify this with the proper authorization (security stuff). 

     // Check if our nonce is set. 
     if (! isset($_POST[ 'custom_product_field_nonce' ])) { 
      return $post_id; 
     } 
     $nonce = $_REQUEST[ 'custom_product_field_nonce' ]; 

     //Verify that the nonce is valid. 
     if (! wp_verify_nonce($nonce)) { 
      return $post_id; 
     } 

     // If this is an autosave, our form has not been submitted, so we don't want to do anything. 
     if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { 
      return $post_id; 
     } 

     // Check the user's permissions. 
     if ('page' == $_POST[ 'post_type' ]) { 

      if (! current_user_can('edit_page', $post_id)) { 
       return $post_id; 
      } 
     } else { 

      if (! current_user_can('edit_post', $post_id)) { 
       return $post_id; 
      } 
     } 
     // --- Its safe for us to save the data ! --- // 

     // Sanitize user input and update the meta field in the database. 
     update_post_meta($post_id, '_shipping_tab', wp_kses_post($_POST[ 'custom_shipping_tab' ])); 
    } 
} 

然后你自己的代码将是:

// Add product custom "Shipping" tab 
add_filter('woocommerce_product_tabs', 'woo_new_product_tab'); 
function woo_new_product_tab($tabs) { 

    $tabs['test_tab'] = array(
     'title'  => __('Shipping', 'woocommerce'), 
     'priority' => 50, 
     'callback' => 'shipping_product_tab_content' 
    ); 

    return $tabs; 
} 

// The Shipping tab content 
function shipping_product_tab_content() { 
    // The new tab content 
    $prod_id = get_the_ID(); 
    echo'<div><p>'.get_post_meta(get_the_ID(), '_shipping_tab' ,true).'</p></div>'; 
} 

代码放在你的积极的function.php文件儿童主题(或主题)或任何插件文件。

经过测试和工作。

+0

完美地工作, –

+0

@jacktriun你应该问一个新的问题,明确制定照顾的细节,使用的代码... – LoicTheAztec