Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove 'List price' and 'Sale price' fields from the General tab #45495

Merged
merged 3 commits into from Mar 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 4 additions & 0 deletions plugins/woocommerce/changelog/add-39644
@@ -0,0 +1,4 @@
Significance: minor
Type: enhancement

Remove 'List price' and 'Sale price' fields from the General tab
Expand Up @@ -235,72 +235,6 @@ private function add_general_group_blocks() {
)
);

// This is needed until hide conditions can be applied to core blocks.
$pricing_conditional_wrapper = $basic_details->add_block(
array(
'id' => 'product-pricing-conditional-wrapper',
'blockName' => 'woocommerce/conditional',
'order' => 30,
'hideConditions' => array(
array(
'expression' => 'editedProduct.type === "grouped"',
),
),
)
);

$pricing_wrapper = Features::is_enabled( 'product-grouped' ) ? $pricing_conditional_wrapper : $basic_details;
$pricing_columns = $pricing_wrapper->add_block(
array(
'id' => 'product-pricing-columns',
'blockName' => 'core/columns',
'order' => 30,
)
);
$pricing_column_1 = $pricing_columns->add_block(
array(
'id' => 'product-pricing-column-1',
'blockName' => 'core/column',
'order' => 10,
'attributes' => array(
'templateLock' => 'all',
),
)
);
$pricing_column_1->add_block(
array(
'id' => 'product-regular-price',
'blockName' => 'woocommerce/product-regular-price-field',
'order' => 10,
'attributes' => array(
'name' => 'regular_price',
'label' => __( 'List price', 'woocommerce' ),
/* translators: PricingTab: This is a link tag to the pricing tab. */
'help' => __( 'Manage more settings in <PricingTab>Pricing.</PricingTab>', 'woocommerce' ),
),
)
);
$pricing_column_2 = $pricing_columns->add_block(
array(
'id' => 'product-pricing-column-2',
'blockName' => 'core/column',
'order' => 20,
'attributes' => array(
'templateLock' => 'all',
),
)
);
$pricing_column_2->add_block(
array(
'id' => 'product-sale-price',
'blockName' => 'woocommerce/product-sale-price-field',
'order' => 10,
'attributes' => array(
'label' => __( 'Sale price', 'woocommerce' ),
),
)
);

// Description section.
$description_section = $general_group->add_section(
array(
Expand Down
Expand Up @@ -50,18 +50,22 @@ test.describe( 'General tab', () => {
)
.last()
.fill( productData.summary );
await page
.locator(
'[id^="wp-block-woocommerce-product-regular-price-field"]'
)
.first()
.fill( productData.productPrice );
await page
.locator(
'[id^="wp-block-woocommerce-product-sale-price-field"]'
)
.first()
.fill( productData.salePrice );

await clickOnTab( 'Pricing', page );

const regularPrice = page
.locator( 'input[name="regular_price"]' )
.first();
await regularPrice.waitFor( { state: 'visible' } );
await regularPrice.click();
await regularPrice.fill( productData.productPrice );

const salePrice = page
.locator( 'input[name="sale_price"]' )
.first();
await salePrice.waitFor( { state: 'visible' } );
await salePrice.click();
await salePrice.fill( productData.salePrice );

await page
.locator( '.woocommerce-product-header__actions' )
Expand All @@ -86,6 +90,7 @@ test.describe( 'General tab', () => {
await expect( productId ).toBeDefined();
await expect( title ).toHaveText( productData.name );
} );

test( 'can not create a product with duplicated SKU', async ( {
page,
} ) => {
Expand All @@ -99,6 +104,8 @@ test.describe( 'General tab', () => {
'[data-template-block-id="basic-details"] .components-summary-control'
)
.fill( productData.summary );

await clickOnTab( 'Pricing', page );
await page
.locator(
'[id^="wp-block-woocommerce-product-regular-price-field"]'
Expand All @@ -117,6 +124,7 @@ test.describe( 'General tab', () => {

await expect( textContent ).toMatch( /Invalid or duplicated SKU./ );
} );

test( 'can a shopper add the simple product to the cart', async ( {
page,
} ) => {
Expand Down
Expand Up @@ -37,8 +37,6 @@ test( 'can update the general information of a product', async ( {
name: `Product ${ Date.now() }`,
description: `Updated description for the awesome product ${ Date.now() }`,
short_description: `Updated summary for the awesome product ${ Date.now() }`,
regularPrice: '100.05',
salePrice: '99.05',
};

const nameTextbox = page.getByLabel( 'Name' ).getByRole( 'textbox' );
Expand All @@ -48,22 +46,11 @@ test( 'can update the general information of a product', async ( {
const descriptionTextbox = page
.getByLabel( 'Block: Product description' )
.getByRole( 'textbox' );
const listPriceTextbox = page.getByRole( 'textbox', {
name: 'List price',
} );
const salePriceTextbox = page.getByRole( 'textbox', {
name: 'Sale price',
} );

await test.step( 'edit the product name', async () => {
await nameTextbox.fill( updatedProduct.name );
} );

await test.step( 'edit the product price', async () => {
await listPriceTextbox.fill( updatedProduct.regularPrice );
await salePriceTextbox.fill( updatedProduct.salePrice );
} );

await test.step( 'edit the product description and summary', async () => {
// Need to clear the textbox before filling it, otherwise the text will be appended.
await descriptionTextbox.clear();
Expand Down Expand Up @@ -91,12 +78,5 @@ test( 'can update the general information of a product', async ( {
await expect
.soft( descriptionTextbox )
.toHaveText( updatedProduct.description );

await expect
.soft( listPriceTextbox )
.toHaveValue( updatedProduct.regularPrice );
await expect
.soft( salePriceTextbox )
.toHaveValue( updatedProduct.salePrice );
} );
} );