diff --git a/includes/admin/class-wc-admin-post-types.php b/includes/admin/class-wc-admin-post-types.php index f67613d4c6e..223ae5d1f10 100644 --- a/includes/admin/class-wc-admin-post-types.php +++ b/includes/admin/class-wc-admin-post-types.php @@ -26,6 +26,9 @@ class WC_Admin_Post_Types { */ public function __construct() { add_filter( 'post_updated_messages', array( $this, 'post_updated_messages' ) ); + add_filter( 'bulk_post_updated_messages', array( $this, 'bulk_post_updated_messages' ), 10, 2 ); + + // Disable Auto Save add_action( 'admin_print_scripts', array( $this, 'disable_autosave' ) ); // WP List table columns. Defined here so they are always available for events such as inline editing. @@ -85,12 +88,105 @@ class WC_Admin_Post_Types { include( 'class-wc-admin-duplicate-product.php' ); } + // Meta-Box Class include_once( 'class-wc-admin-meta-boxes.php' ); // Download permissions add_action( 'woocommerce_process_product_file_download_paths', array( $this, 'process_product_file_download_paths' ), 10, 3 ); } + /** + * Change messages when a post type is updated. + * @param array $messages + * @return array + */ + public function post_updated_messages( $messages ) { + global $post, $post_ID; + + $messages['product'] = array( + 0 => '', // Unused. Messages start at index 1. + 1 => sprintf( __( 'Product updated. View Product', 'woocommerce' ), esc_url( get_permalink( $post_ID ) ) ), + 2 => __( 'Custom field updated.', 'woocommerce' ), + 3 => __( 'Custom field deleted.', 'woocommerce' ), + 4 => __( 'Product updated.', 'woocommerce' ), + 5 => isset( $_GET['revision'] ) ? sprintf( __( 'Product restored to revision from %s', 'woocommerce' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false, + 6 => sprintf( __( 'Product published. View Product', 'woocommerce' ), esc_url( get_permalink( $post_ID ) ) ), + 7 => __( 'Product saved.', 'woocommerce' ), + 8 => sprintf( __( 'Product submitted. Preview Product', 'woocommerce' ), esc_url( add_query_arg( 'preview', 'true', get_permalink( $post_ID ) ) ) ), + 9 => sprintf( __( 'Product scheduled for: %1$s. Preview Product', 'woocommerce' ), + date_i18n( __( 'M j, Y @ G:i', 'woocommerce' ), strtotime( $post->post_date ) ), esc_url( get_permalink( $post_ID ) ) ), + 10 => sprintf( __( 'Product draft updated. Preview Product', 'woocommerce' ), esc_url( add_query_arg( 'preview', 'true', get_permalink( $post_ID ) ) ) ), + ); + + $messages['shop_order'] = array( + 0 => '', // Unused. Messages start at index 1. + 1 => __( 'Order updated.', 'woocommerce' ), + 2 => __( 'Custom field updated.', 'woocommerce' ), + 3 => __( 'Custom field deleted.', 'woocommerce' ), + 4 => __( 'Order updated.', 'woocommerce' ), + 5 => isset( $_GET['revision'] ) ? sprintf( __( 'Order restored to revision from %s', 'woocommerce' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false, + 6 => __( 'Order updated.', 'woocommerce' ), + 7 => __( 'Order saved.', 'woocommerce' ), + 8 => __( 'Order submitted.', 'woocommerce' ), + 9 => sprintf( __( 'Order scheduled for: %1$s.', 'woocommerce' ), + date_i18n( __( 'M j, Y @ G:i', 'woocommerce' ), strtotime( $post->post_date ) ) ), + 10 => __( 'Order draft updated.', 'woocommerce' ), + 11 => __( 'Order updated and email sent.', 'woocommerce' ) + ); + + $messages['shop_coupon'] = array( + 0 => '', // Unused. Messages start at index 1. + 1 => __( 'Coupon updated.', 'woocommerce' ), + 2 => __( 'Custom field updated.', 'woocommerce' ), + 3 => __( 'Custom field deleted.', 'woocommerce' ), + 4 => __( 'Coupon updated.', 'woocommerce' ), + 5 => isset( $_GET['revision'] ) ? sprintf( __( 'Coupon restored to revision from %s', 'woocommerce' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false, + 6 => __( 'Coupon updated.', 'woocommerce' ), + 7 => __( 'Coupon saved.', 'woocommerce' ), + 8 => __( 'Coupon submitted.', 'woocommerce' ), + 9 => sprintf( __( 'Coupon scheduled for: %1$s.', 'woocommerce' ), + date_i18n( __( 'M j, Y @ G:i', 'woocommerce' ), strtotime( $post->post_date ) ) ), + 10 => __( 'Coupon draft updated.', 'woocommerce' ) + ); + + return $messages; + } + + /** + * Specify custom bulk actions messages for different post types. + * @param array $bulk_messages + * @param array $bulk_counts + * @return array + */ + public function bulk_post_updated_messages( $bulk_messages, $bulk_counts ) { + + $bulk_messages['product'] = array( + 'updated' => _n( '%s product updated.', '%s products updated.', $bulk_counts['updated'] ), + 'locked' => _n( '%s product not updated, somebody is editing it.', '%s products not updated, somebody is editing them.', $bulk_counts['locked'] ), + 'deleted' => _n( '%s product permanently deleted.', '%s products permanently deleted.', $bulk_counts['deleted'] ), + 'trashed' => _n( '%s product moved to the Trash.', '%s products moved to the Trash.', $bulk_counts['trashed'] ), + 'untrashed' => _n( '%s product restored from the Trash.', '%s products restored from the Trash.', $bulk_counts['untrashed'] ), + ); + + $bulk_messages['shop_order'] = array( + 'updated' => _n( '%s order updated.', '%s orders updated.', $bulk_counts['updated'] ), + 'locked' => _n( '%s order not updated, somebody is editing it.', '%s orders not updated, somebody is editing them.', $bulk_counts['locked'] ), + 'deleted' => _n( '%s order permanently deleted.', '%s orders permanently deleted.', $bulk_counts['deleted'] ), + 'trashed' => _n( '%s order moved to the Trash.', '%s orders moved to the Trash.', $bulk_counts['trashed'] ), + 'untrashed' => _n( '%s order restored from the Trash.', '%s orders restored from the Trash.', $bulk_counts['untrashed'] ), + ); + + $bulk_messages['shop_coupon'] = array( + 'updated' => _n( '%s coupon updated.', '%s coupons updated.', $bulk_counts['updated'] ), + 'locked' => _n( '%s coupon not updated, somebody is editing it.', '%s coupons not updated, somebody is editing them.', $bulk_counts['locked'] ), + 'deleted' => _n( '%s coupon permanently deleted.', '%s coupons permanently deleted.', $bulk_counts['deleted'] ), + 'trashed' => _n( '%s coupon moved to the Trash.', '%s coupons moved to the Trash.', $bulk_counts['trashed'] ), + 'untrashed' => _n( '%s coupon restored from the Trash.', '%s coupons restored from the Trash.', $bulk_counts['untrashed'] ), + ); + + return $bulk_messages; + } + /** * Define custom columns for products * @param array $existing_columns @@ -1669,64 +1765,6 @@ class WC_Admin_Post_Types { return $where; } - /** - * Change messages when a post type is updated. - * - * @param array $messages - * @return array - */ - public function post_updated_messages( $messages ) { - global $post, $post_ID; - - $messages['product'] = array( - 0 => '', // Unused. Messages start at index 1. - 1 => sprintf( __( 'Product updated. View Product', 'woocommerce' ), esc_url( get_permalink( $post_ID ) ) ), - 2 => __( 'Custom field updated.', 'woocommerce' ), - 3 => __( 'Custom field deleted.', 'woocommerce' ), - 4 => __( 'Product updated.', 'woocommerce' ), - 5 => isset( $_GET['revision'] ) ? sprintf( __( 'Product restored to revision from %s', 'woocommerce' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false, - 6 => sprintf( __( 'Product published. View Product', 'woocommerce' ), esc_url( get_permalink( $post_ID ) ) ), - 7 => __( 'Product saved.', 'woocommerce' ), - 8 => sprintf( __( 'Product submitted. Preview Product', 'woocommerce' ), esc_url( add_query_arg( 'preview', 'true', get_permalink( $post_ID ) ) ) ), - 9 => sprintf( __( 'Product scheduled for: %1$s. Preview Product', 'woocommerce' ), - date_i18n( __( 'M j, Y @ G:i', 'woocommerce' ), strtotime( $post->post_date ) ), esc_url( get_permalink( $post_ID ) ) ), - 10 => sprintf( __( 'Product draft updated. Preview Product', 'woocommerce' ), esc_url( add_query_arg( 'preview', 'true', get_permalink( $post_ID ) ) ) ), - ); - - $messages['shop_order'] = array( - 0 => '', // Unused. Messages start at index 1. - 1 => __( 'Order updated.', 'woocommerce' ), - 2 => __( 'Custom field updated.', 'woocommerce' ), - 3 => __( 'Custom field deleted.', 'woocommerce' ), - 4 => __( 'Order updated.', 'woocommerce' ), - 5 => isset( $_GET['revision'] ) ? sprintf( __( 'Order restored to revision from %s', 'woocommerce' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false, - 6 => __( 'Order updated.', 'woocommerce' ), - 7 => __( 'Order saved.', 'woocommerce' ), - 8 => __( 'Order submitted.', 'woocommerce' ), - 9 => sprintf( __( 'Order scheduled for: %1$s.', 'woocommerce' ), - date_i18n( __( 'M j, Y @ G:i', 'woocommerce' ), strtotime( $post->post_date ) ) ), - 10 => __( 'Order draft updated.', 'woocommerce' ), - 11 => __( 'Order updated and email sent.', 'woocommerce' ) - ); - - $messages['shop_coupon'] = array( - 0 => '', // Unused. Messages start at index 1. - 1 => __( 'Coupon updated.', 'woocommerce' ), - 2 => __( 'Custom field updated.', 'woocommerce' ), - 3 => __( 'Custom field deleted.', 'woocommerce' ), - 4 => __( 'Coupon updated.', 'woocommerce' ), - 5 => isset( $_GET['revision'] ) ? sprintf( __( 'Coupon restored to revision from %s', 'woocommerce' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false, - 6 => __( 'Coupon updated.', 'woocommerce' ), - 7 => __( 'Coupon saved.', 'woocommerce' ), - 8 => __( 'Coupon submitted.', 'woocommerce' ), - 9 => sprintf( __( 'Coupon scheduled for: %1$s.', 'woocommerce' ), - date_i18n( __( 'M j, Y @ G:i', 'woocommerce' ), strtotime( $post->post_date ) ) ), - 10 => __( 'Coupon draft updated.', 'woocommerce' ) - ); - - return $messages; - } - /** * Disable the auto-save functionality for Orders. */