Cómo añadir una columna personalizada a las tablas
Para ello use el hook woot_profile_extend.
Añada el siguiente código en el archivo functions.php:
add_action('woot_profile_extend', function($profile, $action_name) {
if ($action_name === 'woot_woocommerce_tables') {
$profile['my_new_column'] = [
'title' => WOOT_Vocabulary::get('My new column'),
'order' => FALSE,
'action' => function($post_id) {
return 'Hello World!';
}
];
}
return $profile;
}, 10, 2);
Con $post_id puede generar cualquier dato y devolverlo directamente a la celda.
Veamos un ejemplo más complejo, mostrado aquí. Fíjese en el botón "Ask Me" y haga clic en él. Como puede ver, es un formulario de contacto donde el cliente puede escribir un mensaje al gestor de la tienda sobre el producto. Para crearlo:
- cree una página nueva y seleccione la plantilla "WOOT Blank Page"
- instale cualquier plugin de formularios de contacto, por ejemplo wpform
- coloque en el contenido de la página nueva el shortcode del formulario de contacto, por ejemplo [wpforms id="641"]
- añada el siguiente código al archivo functions.php del tema actual de WordPress:
add_action('woot_profile_extend', function($profile, $action_name) { if ($action_name === 'woot_woocommerce_tables') { $profile['ask_me'] = [ 'title' => 'Ask Me', 'order' => FALSE, 'action' => function($post_id) { return WOOT_HELPER::draw_html_item('a', [ 'href' => 'javascript: new Popup23({iframe:"https://demo.products-tables.com/wpform-contact-ask-me/?product_id=' . $post_id . '", ' . 'allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture", ' . 'title:"Ask manager about the product"});void(0);', 'class' => 'woot-btn' ], 'Ask Me'); } ]; } return $profile; }, 10, 2);
Fíjese en el enlace "https://demo.products-tables.com/wpform-contact-ask-me" y cámbielo por el suyo. - Para rellenar algunos campos del formulario de contacto, aplique el siguiente código:
add_filter('wp_footer', function() { if (is_page(642)) { if (isset($_GET['product_id'])) { $product = WOOT_WooCommerce::get_product(intval($_GET['product_id'])); if (is_object($product)) { ?>
642 - ID de la página donde está el formulario de contacto;
wpforms-641-field_4 - ID del campo de entrada