Cómo añadir una pestaña visible solo en el área de administración de productos en WooCommerce
5 abr 2016, 07:41:26
Vistas: 13.6K
Votos: 9
Soy nuevo en desarrollo de WordPress. Quiero añadir configuraciones en la página de producto mediante una nueva pestaña.
¿Cómo puedo añadir estas configuraciones?
Código que intenté para añadir la pestaña:
// Añadir enlace de pestaña de producto en el admin
add_action('woocommerce_product_write_panel_tabs', array($this, 'woocommerce_product_write_panel_tabs'));
// Añadir contenido de pestaña de producto en el admin
add_action('woocommerce_product_write_panels', array($this, 'woocommerce_product_write_panels'));
/**
* woocommerce_product_write_panel_tabs
* Usado para añadir una pestaña personalizada a la pantalla de edición de producto
* @return void
*/
function woocommerce_product_write_panel_tabs(){
?>
<li class="custom_tab">
<a href="#custom_tab_data_ctabs">
<?php _e('Pestañas Customstock', 'GWP'); ?>
</a>
</li>
<?php
}
/**
* woocommerce_product_write_panels
* Usado para mostrar el contenido de la pestaña personalizada (campos) en la pantalla de edición de producto
* @return void
*/
function woocommerce_product_write_panels() {
global $post,$woocommerce;
$fields = array(
array(
'key' => 'custom_tabs_ids',
'label' => __('Seleccionar Pestañas Personalizadas', 'GWP'),
'desc' => __('Comienza a escribir el nombre de la Pestaña Personalizada, usado para incluir pestañas personalizadas.', 'GWP')
),
array(
'key' => 'exclude_custom_tabs_ids',
'label' => __('Seleccionar Pestañas Globales para excluir', 'GWP'),
'desc' => __('Comienza a escribir el nombre de la Pestaña Personalizada. Usado para excluir pestañas globales.', 'GWP')
),
array(
'key' => 'id',
'label' => __('Seleccionar Pestañas Globales para excluir', 'GWP'),
'desc' => __('Comienza a escribir el nombre de la Pestaña Personalizada. Usado para excluir pestañas globales.', 'GWP')
)
);
}

Dipika
105
Comentarios
Todas las respuestas a la pregunta
1
2
He trabajado en tu problema y encontré una solución después de buscar en Google.
Nota: Añade el siguiente código al archivo functions.php
de tu tema o a cualquier archivo de un plugin.
Código:
Esta función de filtro añadirá una pestaña personalizada al metabox Datos del Producto
<?php
add_filter( 'woocommerce_product_data_tabs', 'add_my_custom_product_data_tab' , 99 , 1 );
function add_my_custom_product_data_tab( $product_data_tabs ) {
$product_data_tabs['my-custom-tab'] = array(
'label' => __( 'Mi Pestaña Personalizada', 'my_text_domain' ),
'target' => 'my_custom_product_data',
);
return $product_data_tabs;
}
Esta acción añadirá campos personalizados a las pestañas personalizadas agregadas bajo el metabox Datos del Producto
add_action( 'woocommerce_product_data_panels', 'add_my_custom_product_data_fields' );
function add_my_custom_product_data_fields() {
global $woocommerce, $post;
?>
<!-- el id a continuación debe coincidir con el target registrado en la función add_my_custom_product_data_tab anterior -->
<div id="my_custom_product_data" class="panel woocommerce_options_panel">
<?php
woocommerce_wp_checkbox( array(
'id' => '_my_custom_field',
'wrapper_class' => 'show_if_simple',
'label' => __( 'Etiqueta de Mi Campo Personalizado', 'my_text_domain' ),
'description' => __( 'Descripción de Mi Campo Personalizado', 'my_text_domain' ),
'default' => '0',
'desc_tip' => false,
) );
?>
</div>
<?php
}
?>
Guardar los datos de los campos personalizados de la pestaña de productos:
add_action( 'woocommerce_process_product_meta', 'woocommerce_process_product_meta_fields_save' );
function woocommerce_process_product_meta_fields_save( $post_id ){
// Este es el caso para guardar los datos del campo personalizado de tipo checkbox. Debes hacerlo según tus campos personalizados
$woo_checkbox = isset( $_POST['_my_custom_field'] ) ? 'yes' : 'no';
update_post_meta( $post_id, '_my_custom_field', $woo_checkbox );
}
¡Espero que esto te ayude!

Mehul Gohil
435
5 abr 2016 08:48:12
Preguntas relacionadas
1
respuestas
6
respuestas