Created
November 29, 2013 09:53
-
-
Save dannyconnolly/7703619 to your computer and use it in GitHub Desktop.
Add Custom WooCommerce Product tabs from http://www.phpgenious.com/2013/07/add-custom-tabs-for-product-in-woocommerce/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Process meta | |
* | |
* Processes the custom tab options when a post is saved | |
*/ | |
function process_product_meta_custom_tab($post_id) { | |
update_post_meta($post_id, 'custom_tab_enabled', (isset ($_POST['custom_tab_enabled']) && $_POST['custom_tab_enabled']) ? 'yes' : 'no'); | |
update_post_meta($post_id, 'custom_tab_title', $_POST['custom_tab_title']); | |
update_post_meta($post_id, 'custom_tab_content', $_POST['custom_tab_content']); | |
} | |
add_action('woocommerce_process_product_meta', 'process_product_meta_custom_tab', 10, 2); | |
/** | |
* Display Tab | |
* | |
* Display Custom Tab on Frontend of Website for WooCommerce 2.0 | |
*/ | |
add_filter('woocommerce_product_tabs', 'woocommerce_product_custom_tab'); | |
function woocommerce_product_custom_tab($tabs) { | |
global $post, $product; | |
$custom_tab_options = array ( | |
'enabled' => get_post_meta($post->ID, | |
'custom_tab_enabled', | |
true | |
), 'title' => get_post_meta($post->ID, 'custom_tab_title', true), 'content' => get_post_meta($post->ID, 'custom_tab_content', true),); | |
if ($custom_tab_options['enabled'] != 'no') { | |
$tabs['custom-tab-first'] = array ( | |
'title' => $custom_tab_options['title'], | |
'priority' => 45, | |
'callback' => 'custom_product_tabs_panel_content', | |
'content' => $custom_tab_options['content'] | |
); | |
} | |
return $tabs; | |
} | |
/** | |
* Render the custom product tab panel content for the callback 'custom_product_tabs_panel_content' | |
*/ | |
function custom_product_tabs_panel_content($key, $custom_tab_options) { | |
echo '<h2>' . $custom_tab_options['title'] . '</h2>'; | |
echo $custom_tab_options['content']; | |
} | |
function custom_tab_options_tab_spec() { | |
?> | |
<li class="custom_tab3"><a href="#custom_tab_data3"><?php _e('Technical Information', 'woothemes'); ?></a></li> | |
<?php | |
} | |
add_action('woocommerce_product_write_panel_tabs', 'custom_tab_options_tab_spec'); | |
/** | |
* Custom Tab Options | |
* | |
* Provides the input fields and add/remove buttons for custom tabs on the single product page. | |
*/ | |
function custom_tab_options_spec() { | |
global $post; | |
$custom_tab_options_spec = array ( | |
'titlec' => get_post_meta($post->ID, | |
'custom_tab_title_spec', | |
true | |
), 'contentc' => get_post_meta($post->ID, 'custom_tab_content_spec', true),); | |
?> | |
<div id="custom_tab_data3" class="panel woocommerce_options_panel"> | |
<div class="options_group"> | |
<p class="form-field"> | |
<?php woocommerce_wp_checkbox( array( 'id' => 'custom_tab_enabled_spec', 'label' => __('Enable Custom Tab?', 'woothemes'), 'description' => __('Enable this option to enable the custom tab on the frontend.', 'woothemes') ) ); ?> | |
</p> | |
</div> | |
<div class="options_group custom_tab_options"> | |
<p class="form-field"> | |
<label><?php _e('Custom Tab Title:', 'woothemes'); ?></label> | |
<input type="text" size="5" name="custom_tab_title_spec" value="<?php echo @$custom_tab_options_spec['titlec']; ?>" placeholder="<?php _e('Enter your custom tab title', 'woothemes'); ?>" /> | |
</p> | |
<p class="form-field"> | |
<?php _e('Custom Tab Content:', 'woothemes'); ?> | |
</p> | |
<table class="form-table"> | |
<tr> | |
<td> | |
<?php | |
$settings = array ( | |
'text_area_name' => 'custom_tab_content_spec', | |
'quicktags' => true, | |
'tinymce' => true, | |
'media_butons' => false, | |
'textarea_rows' => 98, | |
'editor_class' => 'contra', | |
'editor_css' => '<style>#wp-custom_tab_content_spec-editor-container .wp-editor-area{height:250px; width:100%;} #custom_tab_data3 .quicktags-toolbar input {width:auto;}</style>' | |
); | |
$id = 'custom_tab_content_spec'; | |
wp_editor($custom_tab_options_spec['contentc'], $id, $settings); | |
?> | |
</td> | |
</tr> | |
</table> | |
</div> | |
</div> | |
<?php | |
} | |
add_action('woocommerce_product_write_panels', 'custom_tab_options_spec'); | |
/*************/ | |
function custom_tab_options_tab() { | |
?> | |
<li class="custom_tab"><a href="#custom_tab_data"><?php _e('Contact Information', 'woothemes'); ?></a></li> | |
<?php | |
} | |
add_action('woocommerce_product_write_panel_tabs', 'custom_tab_options_tab'); | |
/** | |
* Custom Tab Options | |
* | |
* Provides the input fields and add/remove buttons for custom tabs on the single product page. | |
*/ | |
function custom_tab_options() { | |
global $post; | |
$custom_tab_options = array ( | |
'title' => get_post_meta($post->ID, | |
'custom_tab_title', | |
true | |
), 'content' => get_post_meta($post->ID, 'custom_tab_content', true),); | |
?> | |
<div id="custom_tab_data" class="panel woocommerce_options_panel"> | |
<div class="options_group"> | |
<p class="form-field"> | |
<?php woocommerce_wp_checkbox( array( 'id' => 'custom_tab_enabled', 'label' => __('Enable Custom Tab?', 'woothemes'), 'description' => __('Enable this option to enable the custom tab on the frontend.', 'woothemes') ) ); ?> | |
</p> | |
</div> | |
<div class="options_group custom_tab_options"> | |
<p class="form-field"> | |
<label><?php _e('Custom Tab Title:', 'woothemes'); ?></label> | |
<input type="text" size="5" name="custom_tab_title" value="<?php echo @$custom_tab_options['title']; ?>" placeholder="<?php _e('Enter your custom tab title', 'woothemes'); ?>" /> | |
</p> | |
<p class="form-field"> | |
<?php _e('Custom Tab Content:', 'woothemes'); ?> | |
</p> | |
<table class="form-table"> | |
<tr> | |
<td> | |
<textarea class="theEditor" rows="3" cols="90" name="custom_tab_content" placeholder="<?php _e('Enter your custom tab content', 'woothemes'); ?>"><?php echo @$custom_tab_options['content']; ?></textarea> | |
</td> | |
</tr> | |
</table> | |
</div> | |
</div> | |
<?php | |
} | |
add_action('woocommerce_product_write_panels', 'custom_tab_options'); | |
/** | |
* Process meta | |
* | |
* Processes the custom tab options when a post is saved | |
*/ | |
function process_product_meta_custom_tab_spec($post_id) { | |
update_post_meta($post_id, 'custom_tab_enabled_spec', (isset ($_POST['custom_tab_enabled_spec']) && $_POST['custom_tab_enabled_spec']) ? 'yes' : 'no'); | |
update_post_meta($post_id, 'custom_tab_title_spec', $_POST['custom_tab_title_spec']); | |
update_post_meta($post_id, 'custom_tab_content_spec', $_POST['custom_tab_content_spec']); | |
} | |
add_action('woocommerce_process_product_meta', 'process_product_meta_custom_tab_spec', 10, 2); | |
/** | |
* Display Tab | |
* | |
* Display Custom Tab on Frontend of Website for WooCommerce 2.0 | |
*/ | |
add_filter('woocommerce_product_tabs', 'woocommerce_product_custom_tab_spec'); | |
function woocommerce_product_custom_tab_spec($tabs) { | |
global $post, $product; | |
$custom_tab_options_spec = array ( | |
'enabled' => get_post_meta($post->ID, | |
'custom_tab_enabled_spec', | |
true | |
), 'titlec' => get_post_meta($post->ID, 'custom_tab_title_spec', true), 'contentc' => get_post_meta($post->ID, 'custom_tab_content_spec', true),); | |
if ($custom_tab_options_spec['enabled'] != 'no') { | |
$tabs['custom-tab-second'] = array ( | |
'title' => $custom_tab_options_spec['titlec'], | |
'priority' => 30, | |
'callback' => 'custom_product_tabs_panel_content_spec', | |
'content' => $custom_tab_options_spec['contentc'] | |
); | |
} | |
return $tabs; | |
} | |
/** | |
* Render the custom product tab panel content for the callback 'custom_product_tabs_panel_content_spec' | |
*/ | |
function custom_product_tabs_panel_content_spec($key, $custom_tab_options_spec) { | |
global $post, $product; | |
$custom_tab_options_spec = array ( | |
'enabled' => get_post_meta($post->ID, | |
'custom_tab_enabled_spec', | |
true | |
), 'titlec' => get_post_meta($post->ID, 'custom_tab_title_spec', true), 'contentc' => get_post_meta($post->ID, 'custom_tab_content_spec', true),); | |
echo '<h2>' . $custom_tab_options_spec['titlec'] . '</h2>'; | |
echo $custom_tab_options_spec['contentc']; | |
} | |
function custom_tab_options_tab_down() { | |
?> | |
<li class="custom_tab2"><a href="#custom_tab_data2"><?php _e('DIRECTIONS', 'woothemes'); ?></a></li> | |
<?php | |
} | |
add_action('woocommerce_product_write_panel_tabs', 'custom_tab_options_tab_down'); | |
/** | |
* Custom Tab Options | |
* | |
* Provides the input fields and add/remove buttons for custom tabs on the single product page. | |
*/ | |
function custom_tab_options_down() { | |
global $post; | |
$custom_tab_options_down = array ( | |
'titleb' => get_post_meta($post->ID, | |
'custom_tab_title_down', | |
true | |
), 'contentb' => get_post_meta($post->ID, 'custom_tab_content_down', true),); | |
?> | |
<div id="custom_tab_data2" class="panel woocommerce_options_panel"> | |
<div class="options_group"> | |
<p class="form-field"> | |
<?php woocommerce_wp_checkbox( array( 'id' => 'custom_tab_enabled_down', 'label' => __('Enable Custom Tab?', 'woothemes'), 'description' => __('Enable this option to enable the custom tab on the frontend.', 'woothemes') ) ); ?> | |
</p> | |
</div> | |
<div class="options_group custom_tab_options"> | |
<p class="form-field"> | |
<label><?php _e('Custom Tab Title:', 'woothemes'); ?></label> | |
<input type="text" size="5" name="custom_tab_title_down" value="<?php echo @$custom_tab_options_down['titleb']; ?>" placeholder="<?php _e('Enter your custom tab title', 'woothemes'); ?>" /> | |
</p> | |
<p class="form-field"> | |
<?php _e('Custom Tab Content:', 'woothemes'); ?> | |
</p> | |
<table class="form-table"> | |
<tr> | |
<td> | |
<textarea class="theEditor" rows="3" cols="90" name="custom_tab_content_down" placeholder="<?php _e('Enter your custom tab content', 'woothemes'); ?>"><?php echo @$custom_tab_options_down['contentb']; ?></textarea> | |
</td> | |
</tr> | |
</table> | |
</div> | |
</div> | |
<?php | |
} | |
add_action('woocommerce_product_write_panels', 'custom_tab_options_down'); | |
/** | |
* Process meta | |
* | |
* Processes the custom tab options when a post is saved | |
*/ | |
function process_product_meta_custom_tab_down($post_id) { | |
update_post_meta($post_id, 'custom_tab_enabled_down', (isset ($_POST['custom_tab_enabled_down']) && $_POST['custom_tab_enabled_down']) ? 'yes' : 'no'); | |
update_post_meta($post_id, 'custom_tab_title_down', $_POST['custom_tab_title_down']); | |
update_post_meta($post_id, 'custom_tab_content_down', $_POST['custom_tab_content_down']); | |
} | |
add_action('woocommerce_process_product_meta', 'process_product_meta_custom_tab_down', 10, 2); | |
/** | |
* Display Tab | |
* | |
* Display Custom Tab on Frontend of Website for WooCommerce 2.0 | |
*/ | |
add_filter('woocommerce_product_tabs', 'woocommerce_product_custom_tab_down'); | |
function woocommerce_product_custom_tab_down($tabs) { | |
global $post, $product; | |
$custom_tab_options_down = array ( | |
'enabled' => get_post_meta($post->ID, | |
'custom_tab_enabled_down', | |
true | |
), 'titleb' => get_post_meta($post->ID, 'custom_tab_title_down', true), 'contentb' => get_post_meta($post->ID, 'custom_tab_content_down', true),); | |
if ($custom_tab_options_down['enabled'] != 'no') { | |
$tabs['custom-tab-third'] = array ( | |
'title' => $custom_tab_options_down['titleb'], | |
'id' => 'test_multicheckbox', | |
'priority' => 35, | |
'callback' => 'custom_product_tabs_panel_content_down', | |
'content' => $custom_tab_options_down['contentb'] | |
); | |
} | |
return $tabs; | |
} | |
/** | |
* Render the custom product tab panel content for the callback 'custom_product_tabs_panel_content_down' | |
*/ | |
function custom_product_tabs_panel_content_down($key, $custom_tab_options_down) { | |
global $post, $product; | |
$custom_tab_options_down = array ( | |
'enabled' => get_post_meta($post->ID, | |
'custom_tab_enabled_down', | |
true | |
), 'titleb' => get_post_meta($post->ID, 'custom_tab_title_down', true), 'contentb' => get_post_meta($post->ID, 'custom_tab_content_down', true),); | |
$downloads = get_post_meta($post->ID, 'custom_tab_content_down', true); | |
$nsoutput = do_shortcode($downloads); | |
echo '<h2>' . $custom_tab_options_down['titleb'] . '</h2>'; | |
print $nsoutput; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment