"; $columns["thumb"] = __("Image", 'apptivo-ecommerce'); $columns["title"] = __("Name", 'apptivo-ecommerce'); $columns["id"] = __("ID", 'apptivo-ecommerce'); $columns["item_code"] = __("Item Code", 'apptivo-ecommerce'); $columns["item_cat"] = __("Categories", 'apptivo-ecommerce'); $columns["item_tag"] = __("Tags", 'apptivo-ecommerce'); if($apptivo_ecommerce == 'payments') { $columns["payments"] = __("Payments", 'apptivo-ecommerce'); } $columns["featured_item"] = __("Featured", 'apptivo-ecommerce'); $columns["enabled"] = __("Enabled", 'apptivo-ecommerce'); $columns["sale_price"] = __("Price", 'apptivo-ecommerce'); $columns["product_date"] = __("Date", 'apptivo-ecommerce'); return $columns; } /** * Custom Columns for Products page **/ add_action('manage_item_posts_custom_column', 'apptivo_ecommerce_custom_product_columns', 2); function apptivo_ecommerce_custom_product_columns($column) { global $post, $apptivo_ecommerce; $product = new apptivo_ecommerce_product($post->ID); switch ($column) { case "thumb" : if (has_post_thumbnail($post->ID)) : echo get_the_post_thumbnail($post->ID, 'product_thumbnail'); endif; break; case "sale_price": echo $product->sale_regular_price_html(); break; case "item_cat" : case "item_tag" : if ( ! $terms = get_the_terms( $post->ID, $column ) ) { echo ''; } else { foreach ( $terms as $term ) { $termlist[] = '' . $term->name . ''; } echo implode( ', ', $termlist ); } break; case "id" : echo '#'.$post->ID; break; case "item_code" : if ( $item_code = get_post_meta( $post->ID, '_apptivo_item_code', true )) : echo $item_code; else : echo '-'; endif; break; case "featured_item" : if ($product->is_item_featured()) echo 'yes'; else echo 'no'; break; case "enabled" : if ($product->is_item_enabled()) echo 'yes'; else echo 'no'; break; case "product_date" : if ( '0000-00-00 00:00:00' == $post->post_date ) : $t_time = $h_time = __( 'Unpublished' ); $time_diff = 0; else : $t_time = get_the_time( __( 'Y/m/d g:i:s A' ) ); $m_time = $post->post_date; $time = get_post_time( 'G', true, $post ); $time_diff = time() - $time; if ( $time_diff > 0 && $time_diff < 24*60*60 ) $h_time = sprintf( __( '%s ago' ), human_time_diff( $time ) ); else $h_time = mysql2date( __( 'Y/m/d' ), $m_time ); endif; echo '' . apply_filters( 'post_date_column_time', $h_time, $post ) . '
'; break; } } /** * Make product columns sortable **/ add_filter("manage_edit-item_sortable_columns", 'apptivo_ecommerce_custom_product_sort'); function apptivo_ecommerce_custom_product_sort($columns) { $custom = array( 'sale_price' => 'sale_price', 'item_code' => 'item_code', 'id' => 'id', 'featured_item' => 'featured_item', 'enabled' => 'enabled', 'product_date' => 'date' ); return wp_parse_args($custom, $columns); } add_filter( 'request', 'apptivo_ecommerce_custom_item_orderby' ); function apptivo_ecommerce_custom_item_orderby( $vars ) { if (isset( $vars['orderby'] )) : if ( 'sale_price' == $vars['orderby'] ) : $vars = array_merge( $vars, array( 'meta_key' => '_apptivo_sale_price', 'orderby' => 'meta_value_num' ) ); endif; if ( 'featured_item' == $vars['orderby'] ) : $vars = array_merge( $vars, array( 'meta_key' => '_apptivo_featured', 'orderby' => 'meta_value' ) ); endif; if ( 'enabled' == $vars['orderby'] ) : $vars = array_merge( $vars, array( 'meta_key' => '_apptivo_enabled', 'orderby' => 'meta_value' ) ); endif; if ( 'item_code' == $vars['orderby'] ) : $vars = array_merge( $vars, array( 'meta_key' => '_apptivo_item_code', 'orderby' => 'meta_value_num' ) ); endif; if ( 'id' == $vars['orderby'] ) : $vars = array_merge( $vars, array( 'orderby' => 'ID' ) ); endif; endif; return $vars; } /** * Add functionality to the image uploader on product pages to exlcude an image **/ add_filter('attachment_fields_to_edit', 'apptivo_ecommerce_exclude_image_from_product_page_field', 1, 2); add_filter('attachment_fields_to_save', 'apptivo_ecommerce_exclude_image_from_product_page_field_save', 1, 2); function apptivo_ecommerce_exclude_image_from_product_page_field( $fields, $object ) { if (!$object->post_parent) return $fields; $parent = get_post( $object->post_parent ); if ($parent->post_type!=='item') return $fields; $exclude_image = (int) get_post_meta($object->ID, '_apptivo_ecommerce_exclude_image', true); $label = __('Exclude image', 'apptivo_ecommerce'); $html = ''; $fields['apptivo_ecommerce_exclude_image'] = array( 'label' => $label, 'input' => 'html', 'html' => $html, 'value' => '', 'helps' => __('Enabling this option will hide it from the product page image gallery.', 'apptivo_ecommerce') ); return $fields; } function apptivo_ecommerce_exclude_image_from_product_page_field_save( $post, $attachment ) { if (isset($_REQUEST['attachments'][$post['ID']]['apptivo_ecommerce_exclude_image'])) : delete_post_meta( (int) $post['ID'], '_apptivo_ecommerce_exclude_image' ); update_post_meta( (int) $post['ID'], '_apptivo_ecommerce_exclude_image', 1); else : delete_post_meta( (int) $post['ID'], '_apptivo_ecommerce_exclude_image' ); update_post_meta( (int) $post['ID'], '_apptivo_ecommerce_exclude_image', 0); endif; return $post; }