Small adjustments in WC_Admin_Post_Types

- Remove no longer needed phpcs disablers.
- Rename method.
- Remove no longer needed logic.
- Simplify some logic.
This commit is contained in:
Nestor Soriano 2020-05-25 10:44:00 +02:00
parent fc0be07e0f
commit a39e15f92b
1 changed files with 15 additions and 25 deletions

View File

@ -88,11 +88,10 @@ class WC_Admin_Post_Types {
$screen_id = isset( $screen, $screen->id ) ? $screen->id : '';
}
// phpcs:disable WordPress.Security.NonceVerification.Recommended
if ( ! empty( $request_data['screen'] ) ) {
$screen_id = wc_clean( wp_unslash( $request_data['screen'] ) );
$screen_data = $request_data['screen'];
if ( ! empty( $screen_data ) ) {
$screen_id = wc_clean( wp_unslash( $screen_data ) );
}
// phpcs:enable WordPress.Security.NonceVerification.Recommended
switch ( $screen_id ) {
case 'edit-shop_order':
@ -337,8 +336,6 @@ class WC_Admin_Post_Types {
* @param WC_Product $product Product object.
*/
private function quick_edit_save( $post_id, $product ) {
// phpcs:disable WordPress.Security.NonceVerification.Recommended
$request_data = $this->request_data();
$data_store = $product->get_data_store();
@ -423,31 +420,28 @@ class WC_Admin_Post_Types {
// Handle Stock Data.
// phpcs:disable WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
$manage_stock = ! empty( $request_data['_manage_stock'] ) && 'grouped' !== $product->get_type() ? 'yes' : 'no';
$backorders = ! empty( $request_data['_backorders'] ) ? wc_clean( $request_data['_backorders'] ) : 'no';
$stock_status_in_request = ! empty( $request_data['_stock_status'] );
if ( $stock_status_in_request ) {
$manage_stock = ! empty( $request_data['_manage_stock'] ) && 'grouped' !== $product->get_type() ? 'yes' : 'no';
$backorders = ! empty( $request_data['_backorders'] ) ? wc_clean( $request_data['_backorders'] ) : 'no';
if ( ! empty( $request_data['_stock_status'] ) ) {
$stock_status = wc_clean( $request_data['_stock_status'] );
} else {
$stock_status = $product->is_type( 'variable' ) ? null : 'instock';
}
$stock_amount = 'yes' === $manage_stock && isset( $request_data['_stock'] ) && is_numeric( wp_unslash( $request_data['_stock'] ) ) ? wc_stock_amount( wp_unslash( $request_data['_stock'] ) ) : '';
// phpcs:enable WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
$product->set_manage_stock( $manage_stock );
$product->set_backorders( $backorders );
if ( 'yes' === get_option( 'woocommerce_manage_stock' ) ) {
$stock_amount = 'yes' === $manage_stock && isset( $request_data['_stock'] ) && is_numeric( wp_unslash( $request_data['_stock'] ) ) ? wc_stock_amount( wp_unslash( $request_data['_stock'] ) ) : '';
$product->set_stock_quantity( $stock_amount );
}
$product = $this->update_stock_status( $product, $stock_status );
$product = $this->maybe_update_stock_status( $product, $stock_status );
$product->save();
do_action( 'woocommerce_product_quick_edit_save', $product );
// phpcs:enable WordPress.Security.NonceVerification.Recommended
}
/**
@ -457,7 +451,7 @@ class WC_Admin_Post_Types {
* @param WC_Product $product Product object.
*/
public function bulk_edit_save( $post_id, $product ) {
// phpcs:disable WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.MissingUnslash
// phpcs:disable WordPress.Security.ValidatedSanitizedInput.MissingUnslash
$request_data = $this->request_data();
@ -559,7 +553,7 @@ class WC_Admin_Post_Types {
$product->set_backorders( $backorders );
if ( 'yes' === get_option( 'woocommerce_manage_stock' ) ) {
$change_stock = empty( $request_data['change_stock'] ) ? 0 : absint( $request_data['change_stock'] );
$change_stock = absint( $request_data['change_stock'] );
switch ( $change_stock ) {
case 2:
wc_update_product_stock( $product, $stock_amount, 'increase', true );
@ -578,13 +572,13 @@ class WC_Admin_Post_Types {
}
$stock_status = empty( $request_data['_stock_status'] ) ? null : wc_clean( $request_data['_stock_status'] );
$product = $this->update_stock_status( $product, $stock_status );
$product = $this->maybe_update_stock_status( $product, $stock_status );
$product->save();
do_action( 'woocommerce_product_bulk_edit_save', $product );
// phpcs:enable WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.MissingUnslash
// phpcs:enable WordPress.Security.ValidatedSanitizedInput.MissingUnslash
}
/**
@ -888,7 +882,7 @@ class WC_Admin_Post_Types {
* @param string|null $stock_status The stock status to use for adjustment, or null if no new stock status has been supplied in the request.
* @return WC_Product The supplied product, or the synced product if it was a variable product.
*/
private function update_stock_status( $product, $stock_status ) {
private function maybe_update_stock_status( $product, $stock_status ) {
if ( $product->is_type( 'external' ) ) {
// External products are always in stock.
$product->set_stock_status( 'instock' );
@ -974,11 +968,7 @@ class WC_Admin_Post_Types {
if ( isset( $new_price ) && $new_price !== $old_price ) {
$price_changed = true;
if ( 'sale' === $price_type && empty( $new_price ) && '0' !== $new_price ) {
$new_price = '';
} else {
$new_price = round( $new_price, wc_get_price_decimals() );
}
$new_price = round( $new_price, wc_get_price_decimals() );
$product->{"set_{$price_type}_price"}( $new_price );
}
@ -988,7 +978,7 @@ class WC_Admin_Post_Types {
}
/**
* Get the cuurrent request data ($_REQUEST superglobal).
* Get the current request data ($_REQUEST superglobal).
* This method is added to ease unit testing.
*
* @return array The $_REQUEST superglobal.