180 lines
7.1 KiB
PHP
180 lines
7.1 KiB
PHP
<?php
|
|
|
|
// Remove Default links
|
|
remove_action( 'woocommerce_before_shop_loop_item','woocommerce_template_loop_product_link_open', 10);
|
|
remove_action( 'woocommerce_after_shop_loop_item','woocommerce_template_loop_product_link_close', 5);
|
|
|
|
|
|
/* Move Sale Flash */
|
|
remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10);
|
|
add_action( 'woocommerce_before_shop_loop_item', 'woocommerce_show_product_loop_sale_flash', 10);
|
|
|
|
|
|
/**
|
|
* Gets products per page count from theme settings.
|
|
*/
|
|
function flatsome_product_pr_page() {
|
|
return get_theme_mod( 'products_pr_page', 12 );
|
|
}
|
|
add_filter( 'loop_shop_per_page', 'flatsome_product_pr_page', 20 );
|
|
|
|
/**
|
|
* Gets base desktop row count from theme settings.
|
|
*/
|
|
function flatsome_category_row_count() {
|
|
return get_theme_mod( 'category_row_count', 3 );
|
|
}
|
|
add_filter( 'loop_shop_columns', 'flatsome_category_row_count', 20 );
|
|
|
|
|
|
/* Set WooCommerce product loop classes */
|
|
function flatsome_product_row_classes($cols = null){
|
|
$classes = array('row','row-small');
|
|
|
|
$category_grid_style = flatsome_option('category_grid_style');
|
|
|
|
if($category_grid_style == 'masonry'){
|
|
wp_enqueue_script('flatsome-masonry-js');
|
|
$classes[] = 'row-masonry has-packery';
|
|
}
|
|
|
|
if(get_theme_mod('category_grid_style') == 'list'){
|
|
$classes[] = 'has-box-vertical';
|
|
}
|
|
|
|
$columns = flatsome_option('category_row_count');
|
|
|
|
if($cols) $columns = $cols;
|
|
if ( is_cart() ) $columns = apply_filters( 'woocommerce_cross_sells_columns', 4 );
|
|
|
|
$classes[] = 'large-columns-'.$columns;
|
|
$classes[] = 'medium-columns-'.flatsome_option('category_row_count_tablet');
|
|
$classes[] = 'small-columns-'.flatsome_option('category_row_count_mobile');
|
|
|
|
$shadow = flatsome_option('category_shadow');
|
|
$shadow_hover = flatsome_option('category_shadow_hover');
|
|
|
|
if($shadow || $shadow_hover) $classes[] = 'has-shadow';
|
|
if($shadow) $classes[] = 'row-box-shadow-'.$shadow;
|
|
if($shadow_hover) $classes[] = 'row-box-shadow-'.$shadow_hover.'-hover';
|
|
|
|
// Custom heights
|
|
if(get_theme_mod('category_force_image_height')) {
|
|
$classes[] = 'has-equal-box-heights';
|
|
}
|
|
|
|
if ( get_theme_mod( 'equalize_product_box' ) ) {
|
|
$classes[] = 'equalize-box';
|
|
}
|
|
|
|
return implode(' ', $classes);
|
|
}
|
|
|
|
function flatsome_products_footer_content(){
|
|
if(is_product_category() || is_product_tag()){
|
|
$queried_object = get_queried_object();
|
|
$content = get_term_meta($queried_object->term_id, 'cat_meta');
|
|
if(!empty($content[0]['cat_footer'])){
|
|
echo '<hr/>';
|
|
echo do_shortcode($content[0]['cat_footer']);
|
|
}
|
|
}
|
|
}
|
|
add_action('flatsome_products_after','flatsome_products_footer_content');
|
|
|
|
|
|
/* Add Custom Meta to Category */
|
|
if(is_admin()){
|
|
if(function_exists('get_term_meta')){
|
|
function top_text_taxonomy_edit_meta_field($term) {
|
|
// put the term ID into a variable
|
|
$t_id = $term->term_id;
|
|
// retrieve the existing value(s) for this meta field. This returns an array
|
|
$term_meta = get_term_meta($t_id,'cat_meta');
|
|
if(!$term_meta){$term_meta = add_term_meta($t_id, 'cat_meta', '');}
|
|
?>
|
|
<tr class="form-field">
|
|
<th scope="row" valign="top"><label for="term_meta[cat_header]"><?php _e( 'Top Content', 'flatsome' ); ?></label></th>
|
|
<td>
|
|
<?php
|
|
$content = esc_attr( isset($term_meta[0]['cat_header']) ) ? esc_attr( $term_meta[0]['cat_header'] ) : '';
|
|
echo '<textarea id="term_meta[cat_header]" name="term_meta[cat_header]">'.$content.'</textarea>'; ?>
|
|
<p class="description"><?php _e( 'Enter a value for this field. Shortcodes are allowed. This will be displayed at top of the category.','flatsome' ); ?></p>
|
|
</td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
add_action( 'product_cat_edit_form_fields', 'top_text_taxonomy_edit_meta_field', 10, 2 );
|
|
add_action( 'product_tag_edit_form_fields', 'top_text_taxonomy_edit_meta_field', 10, 2 );
|
|
|
|
/* ADD CUSTOM META BOX TO CATEGORY PAGES */
|
|
function bottom_text_taxonomy_edit_meta_field($term) {
|
|
// put the term ID into a variable
|
|
$t_id = $term->term_id;
|
|
// retrieve the existing value(s) for this meta field. This returns an array
|
|
$term_meta = get_term_meta($t_id,'cat_meta');
|
|
if(!$term_meta){$term_meta = add_term_meta($t_id, 'cat_meta', '');}
|
|
?>
|
|
<tr class="form-field">
|
|
<th scope="row" valign="top"><label for="term_meta[cat_footer]"><?php _e( 'Bottom Content', 'flatsome' ); ?></label></th>
|
|
<td>
|
|
<?php
|
|
$content = isset($term_meta[0]['cat_footer']) ? esc_attr( $term_meta[0]['cat_footer'] ) : '';
|
|
echo '<textarea id="term_meta[cat_footer]" name="term_meta[cat_footer]">'.$content.'</textarea>'; ?>
|
|
<p class="description"><?php _e( 'Enter a value for this field. Shortcodes are allowed. This will be displayed at bottom of the category.','flatsome' ); ?></p>
|
|
</td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
add_action( 'product_cat_edit_form_fields', 'bottom_text_taxonomy_edit_meta_field', 10, 2 );
|
|
add_action( 'product_tag_edit_form_fields', 'bottom_text_taxonomy_edit_meta_field', 10, 2 );
|
|
|
|
function flatsome_custom_product_page_taxonomy_edit_meta_field( $term ) {
|
|
$t_id = $term->term_id;
|
|
// retrieve the existing value(s) for this meta field. This returns an array
|
|
$term_meta = get_term_meta( $t_id, 'cat_meta' );
|
|
if ( ! $term_meta ) {
|
|
$term_meta = add_term_meta( $t_id, 'cat_meta', '' );
|
|
}
|
|
?>
|
|
<tr class="form-field">
|
|
<th scope="row" valign="top"><label for="term_meta[cat_product_block]"><?php _e( 'Custom product layout', 'flatsome' ); ?></label></th>
|
|
<td>
|
|
<?php
|
|
$selected = esc_attr( isset( $term_meta[0]['cat_product_block'] ) ) ? esc_attr( $term_meta[0]['cat_product_block'] ) : 0;
|
|
wp_dropdown_pages( array(
|
|
'id' => 'term_meta[cat_product_block]',
|
|
'name' => 'term_meta[cat_product_block]',
|
|
'post_type' => 'blocks',
|
|
'show_option_none' => '-- None --',
|
|
'selected' => $selected,
|
|
) ); ?>
|
|
<p class="description"><?php _e( 'Choose a custom product block layout for this category.', 'flatsome' ); ?></p>
|
|
</td>
|
|
</tr>
|
|
<?php
|
|
|
|
}
|
|
|
|
add_action( 'product_cat_edit_form_fields', 'flatsome_custom_product_page_taxonomy_edit_meta_field', 10 );
|
|
|
|
/* SAVE CUSTOM META*/
|
|
function fl_save_taxonomy_custom_meta( $term_id ) {
|
|
if ( isset( $_POST['term_meta'] ) ) {
|
|
$t_id = $term_id;
|
|
$cat_keys = array_keys( $_POST['term_meta'] );
|
|
foreach ( $cat_keys as $key ) {
|
|
if ( isset ( $_POST['term_meta'][$key] ) ) {
|
|
$term_meta[$key] = $_POST['term_meta'][$key];
|
|
}
|
|
}
|
|
// Save the option array.
|
|
update_term_meta($term_id, 'cat_meta', $term_meta);
|
|
}
|
|
}
|
|
add_action( 'edited_product_cat', 'fl_save_taxonomy_custom_meta', 10, 2 );
|
|
add_action( 'edited_product_tag', 'fl_save_taxonomy_custom_meta', 10, 2 );
|
|
|
|
}
|
|
} // is_admin
|