Skip to content

Commit

Permalink
Rebase wcs-migration branch onto trunk (#2783)
Browse files Browse the repository at this point in the history
* Tweak/issue 2750 - WordPress 6.6 and WooCommerce 9.0 Compatibility (#2754)

* Bump tested up to version

* add changelog

* update readme file

* woorelease: Product version bump update

* Revert "woorelease: Product version bump update"

This reverts commit 122c7b3.

* woorelease: Product version bump update

* Revert "woorelease: Product version bump update"

This reverts commit 642db4f.

* woorelease: Product version bump update

* Fix/issue 2712 - Make The Tariff Number Field a Required Field when the Destination is Within EU (#2764)

* add condition for EU tariff number

* add changelog

* edit the tariff number error text

* edit changelog

* woorelease: Product version bump update

* Conditionally load shipping functionality based on if WC Shipping is active (#2761)

* Rough take

* Do not change the name, this is still called WooCommerce Shipping & Tax

* Set `wc_services_will_handle_coexistence_with_woo_shipping_and_woo_tax` hook to indicate we will handle the coexistence

* Remove WC_Connect_Note_DHL_Live_Rates_Available notice todo

My concern was about the class not existing and thereby creating PHP fatal errors, but we require the file right before using it, so there's no issue even if shipping has not been generally initiated.

* Remove outdated todos

* Status page should respect shipping conditional loading (#2776)

* Conditionally hide shipping related status data

* Satisfy tests

* Introduce new "wc_services_will_disable_shipping_logic" hook (#2775)

* Reimplement logic that completely blocks WCS&T logic from initiating

* Introduce new hook for conditional loading

---------

Co-authored-by: Gerhard <potgieterg@gmail.com>

* Add changelog for WC Shipping compatibility (#2779)

* Conditionally shows legacy reports shipping tab (#2780)

* woorelease: Product version bump update

* Define Feature Announcement component and open it on click [122] (#2743)

* Define Feature Announcement component and add the content

* Open the feature announcement modal when user clicks on Create shipping label

* Make the copy translatable

* Aknowledge eligibility when opening the feature announcement modal

* Add buttons and polish styling

* Disable the modal for the time being

* Add missing text and update styling

* Remove redundant argument in selector

* Add modal left column not taking 100% of the height

* Remove useCallback from stub function

* Revert code formatting back

* Fix/adjust how feature announcement looks on smaller screens (#2746)

* Fix how Feature Announcement component looks on smaller screens

* Remove excess space in closing tag

* Install and activate a list of plugins during migrations (#2745)

* Add @wordpress/api-fetch package

* Created a place holder button to test plugin activation

* Update shrinkwrap since we installed api-fetch

* Use hello-dolly to test install and activate

* Use native fetch instead of apiFetch

* Remove apiFetch package

* Fix < /p> to </p>

* Bind activation and installation to the update button

* Deactivate WCS&T after installing Woo Shipping and Woo Tax

* Disable is_eligible_for_migration

Don't enable migration yet.

* Redirect to plugins after installation

* Fix deactivateWCSTPluginAPICall to return promise

* Use relative path for the actions in feature-announcement

* Add adminPluginPath in the js global config.

* Execute each task in steps and throw exception if any fails

* Fix fill-rule to fillRule and clip-rule to clipRule (#2748)

* Set a flag to indicate migration has started or has completed (#2747)

* Add connect/migration-flag endpoint

* Set a flag "wcshipping_migrated" to indicate it is migrated

* is_eligible_for_migration() now checks for the config as well

* Add migration done API call to the update button

* Update migration flag to migration state

* Update space to tabs

* Call API to update migration status to "started"

* Update migration state to completed in plugin deactivation hook

* Default is_eligible_for_migration to return false

* Update API constants to something like an enum instead

* PHP cs fixes

* Return 200 if option updated, 304 otherwise

* Remove redundancy in condition

* Inline code comment can not be a DocBlock

* Remove redundant class_exists() check for the enum class

* Return 500 if update_option failed

* Add admin notice on orders page for WCShipping migration (#2751)

* Use current_screen hook to trigger the add admin notice hook

* Add dimissable

* Added a button for "Upgrade now"

* Update "Confirm update" style

* Fix spaces

* Fix indentation

* Fix whitespace for linting

* Screen ID not found if using HPOS, fixed

* Update learn more link

* Add a new function is_on_order_list_page() to check order list page

* Get the migration banner info from the connect server (#2752)

* Add note to README with a fix for `npm i` getting stuck

* Retrieves the migration banner info from WooCommerce Connect Server

* Address PR comments

* Get the flag to display the migration banner from the connect server (#2755)

* Refactor code checking whether or not to display a migration banner

* Address PR comments

* Change dismiss icon and behaviour [shipping-140] (#2758)

* Add is-dismissable and button label from server

* Register separate stylesheet and add stylings for the banner and buttons

* Add functionality to dismiss and remember dismissal

* Add state machine to drive migration states (#2757)

* Add state machine to drive migration states

* Rename state to better describe its name

* Refactor the API call out so the runNext function is decouple from API status check

* Update migration state enums to include all states in the machine

* Store the state in the wcshipping_migration_state option.

This allows us to remember where we were and we can always restart the
migration based on the last known state.

* Remove comment.

* Pass the wcshipping_migration_state option into the FeatureAnnouncement react component

* Fix a bug where restarting from an error state didn't proceed to the next state

* Return 304 if state is not modified instead of throwing 4xx.

* Fix 'wcshippingMigrationState' is already declared in the upper scope error

* Refactor the state machine logic into its own module

* Use wcs-client as path and re-enable redirection

* Added comments to the migration-runner module

* Apply suggestions from code review

Lint fixes.

Co-authored-by: Fernando Espinosa <Ferdev@users.noreply.github.com>

* Wait for the migration to finish before setting isUpdating back to false

* Return the fetch Response object instead

* Added a function to check if state exists before using it.

Throw exception otherwise.

* Update client/components/migration/migration-runner.js

* Update client/components/migration/migration-runner.js

* Update client/components/migration/migration-runner.js

---------

Co-authored-by: Fernando Espinosa <Ferdev@users.noreply.github.com>

* Add a "deactivated" message to the plugins list entry (#2759)

* Add a "deactivated" message to the plugins list entry

* Update woocommerce-services.php

Co-authored-by: Gerhard Potgieter <potgieterg@gmail.com>

* Address PR comments

* Remove redundant `esc_html`

* Customize the after_plugin_row action for this plugin only

* Fix background color of deactivated message

---------

Co-authored-by: Gerhard Potgieter <potgieterg@gmail.com>

* Load the FeatureAnnouncement modal to the order listing page (#2756)

* Load a new javascript file when migration admin notice shows up

* Load redux store for admin notice

The redux store inlcudes only the label shipping's reducer and the initial states.

* semi-colon gets rendered out. Removing.

* Fix style and setup initial data from the PHP's side

* Use wcs-client alias for webpack otherwise order list page can't find it

* Add baseURL and redirect URL through the proper enqueued scripts

* Move inline styles to the migration scss

* Clicking "Confirm update" will start the migration process

* Remove phpcs:ignore because it does have a version

* Use ID as the selector for the modal update button instead.

* Fix merge conflict issues with the existing css and js overlaps

* Change testing 10s back to 3 * 24 * 60 * 60

* Fix admin notice dimissible button and cleaned up jquery

* After clicking dimiss, remove itself from the DOM until 3 days later

* Add EOL to the js file.

* Change headers to a callback to retrieve getNonce() after dependencies are loaded

* Refactor cookie function to window.wpCookies

* Add tracking data for the migration process (#2760)

* Add tracking data for the migration process

* Remove debugging output

* Add update value to tracked data

* Clicking "Maybe later" will dismiss feature announcement for 3 days (#2762)

* Clicking "Maybe later" will dismiss the modal for 3 days

* Do not display modal if it's previously dismissed

* Don't show the modal if the page isn't refreshed

* EOL in new file

* Apply suggestions from code review

Lint fixes.

Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>

---------

Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>

* Save transients after a migration has been completed (#2763)

* Save transients after a migration has been completed

* Use general options instead of WooCommerce Shipping & Tax's options

* Cast the migration state to int now that is saved as a global option

* Remove wcshipping_migration_state as option name

* Add missing tracking data for the migration process (#2765)

* Update tracking data when the migration is completed

* Move plugin entry deactivated message to WooCommerce Shipping

* Add missing imports for tracks in a static method

* Remove db migration and deactivation (#2767)

* Skip db and deactivating plugin and finish the migration once activation is done

* Remove woocommerce-tax from the download and activation list

* Because WCS&T is no longer deactivated, we can update the migration state when it quits

* No longer need to rely on plugin_deactivation() to update the final migration state

* Adapt the migration banner popup to reusing WCS&T (#2769)

* Change copy in migration popup

* Improve copy in migration popup

* Provide public path to js entry files (#2770)

* Display migration banner on all WC settings page [shipping-152] (#2771)

* Show upgrade banner on shipping settings page as well

* Make sure clicking the confirm upgrade button doesn't refresh the page

* Show update banner on all settings pages

---------

Co-authored-by: Luthfi Bintoro <iyut85@yahoo.com>
Co-authored-by: Sam Najian <sam.najian@automattic.com>
Co-authored-by: Harris Wong <harris.wong@automattic.com>
Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>
Co-authored-by: Gerhard <potgieterg@gmail.com>
Co-authored-by: Sam Najian <dev.samnajian@gmail.com>
  • Loading branch information
7 people authored Jul 31, 2024
1 parent b73f7a1 commit 8fdc5f5
Show file tree
Hide file tree
Showing 16 changed files with 268 additions and 163 deletions.
9 changes: 9 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
*** WooCommerce Shipping & Tax Changelog ***

= 2.7.0 - 2024-07-25 =
* Add - Parallel compatibility with WooCommerce Shipping plugin.

= 2.6.2 - 2024-07-16 =
* Fix - Require HS Tariff number on customs form for EU destination countries.

= 2.6.1 - 2024-07-02 =
* Tweak - WooCommerce 9.0 and WordPress 6.6 compatibility.

= 2.6.0 - 2024-06-04 =
* Add - Logger for "Live Rates" feature on the front-end.

Expand Down
42 changes: 24 additions & 18 deletions classes/class-wc-connect-help-view.php
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,10 @@ protected function get_health_items() {
return $health_items;
}

protected function is_shipping_loaded() {
return ! in_array( 'woocommerce-shipping/woocommerce-shipping.php', get_option( 'active_plugins' ) );
}

protected function get_services_items() {
$available_service_method_ids = $this->service_schemas_store->get_all_shipping_method_ids();
if ( empty( $available_service_method_ids ) ) {
Expand Down Expand Up @@ -261,16 +265,17 @@ public function status_tabs( $tabs ) {
*/
protected function get_form_data() {
return array(
'health_items' => $this->get_health_items(),
'services' => $this->get_services_items(),
'logging_enabled' => $this->logger->is_logging_enabled(),
'debug_enabled' => $this->logger->is_debug_enabled(),
'logs' => array(
'health_items' => $this->get_health_items(),
'services' => $this->get_services_items(),
'logging_enabled' => $this->logger->is_logging_enabled(),
'debug_enabled' => $this->logger->is_debug_enabled(),
'logs' => array(
'shipping' => $this->get_debug_log_data( 'shipping' ),
'taxes' => $this->get_debug_log_data( 'taxes' ),
'other' => $this->get_debug_log_data(),
),
'tax_rate_backups' => WC_Connect_Functions::get_backed_up_tax_rate_files(),
'tax_rate_backups' => WC_Connect_Functions::get_backed_up_tax_rate_files(),
'is_shipping_loaded' => $this->is_shipping_loaded(),
);
}

Expand All @@ -296,8 +301,9 @@ public function page() {
'enqueue_wc_connect_script',
'wc-connect-admin-test-print',
array(
'storeOptions' => $this->service_settings_store->get_store_options(),
'paperSize' => $this->service_settings_store->get_preferred_paper_size(),
'isShippingLoaded' => $this->is_shipping_loaded(),
'storeOptions' => $this->service_settings_store->get_store_options(),
'paperSize' => $this->service_settings_store->get_preferred_paper_size(),
)
);
}
Expand All @@ -308,42 +314,42 @@ public function page() {
protected function get_tax_health_item() {
$store_country = WC()->countries->get_base_country();
if ( ! $this->taxjar_integration->is_supported_country( $store_country ) ) {
return [
return array(
'state' => 'error',
'settings_link_type' => '',
'message' => sprintf( __( 'Your store\'s country (%s) is not supported. Automated taxes functionality is disabled', 'woocommerce-services' ), $store_country ),
];
);
}

if ( class_exists( 'WC_Taxjar' ) ) {
return [
return array(
'state' => 'error',
'settings_link_type' => '',
'message' => __( 'TaxJar extension detected. Automated taxes functionality is disabled', 'woocommerce-services' ),
];
);
}

if ( ! wc_tax_enabled() ) {
return [
return array(
'state' => 'error',
'settings_link_type' => 'general',
'message' => __( 'The core WooCommerce taxes functionality is disabled. Please ensure the "Enable tax rates and calculations" setting is turned "on" in the WooCommerce settings page', 'woocommerce-services' ),
];
);
}

if ( ! $this->taxjar_integration->is_enabled() ) {
return [
return array(
'state' => 'error',
'settings_link_type' => 'tax',
'message' => __( 'The automated taxes functionality is disabled. Enable the "Automated taxes" setting on the WooCommerce settings page', 'woocommerce-services' ),
];
);
}

return [
return array(
'state' => 'success',
'settings_link_type' => 'tax',
'message' => __( 'Automated taxes are enabled', 'woocommerce-services' ),
];
);
}
}

Expand Down
1 change: 1 addition & 0 deletions classes/class-wc-connect-shipping-label.php
Original file line number Diff line number Diff line change
Expand Up @@ -598,6 +598,7 @@ public function meta_box( $post, $args ) {
'packagesSettings' => $this->package_settings->get(),
'shippingLabelData' => $this->get_label_payload( $order->get_id() ),
'continents' => $this->continents->get(),
'euCountries' => WC()->countries->get_european_union_countries(),
'context' => $args['args']['context'],
'items' => $items_count,
),
Expand Down
6 changes: 4 additions & 2 deletions client/apps/plugin-status/health.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import WooCommerceServicesIndicator from './woocommerce-services-indicator';
import SettingsGroupCard from 'woocommerce/woocommerce-services/components/settings-group-card';
import FormSettingExplanation from 'components/forms/form-setting-explanation';

const HealthView = ( { translate, healthItems } ) => {
const HealthView = ( { translate, healthItems, isShippingLoaded } ) => {
return (
<SettingsGroupCard heading={translate('Health', {
context: 'This section displays the overall health of WooCommerce Shipping & Tax and the things it depends on',
Expand Down Expand Up @@ -62,7 +62,8 @@ const HealthView = ( { translate, healthItems } ) => {
</ExternalLink>
</FormSettingExplanation>
</Indicator>
<WooCommerceServicesIndicator/>

{ isShippingLoaded && <WooCommerceServicesIndicator/> }
</SettingsGroupCard>

);
Expand All @@ -71,5 +72,6 @@ const HealthView = ( { translate, healthItems } ) => {
export default connect(
( state ) => ( {
healthItems: state.status.health_items,
isShippingLoaded: state.status.is_shipping_loaded
} )
)( localize( HealthView ) );
3 changes: 2 additions & 1 deletion client/apps/plugin-status/test/health.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ const Wrapper = ({ children, healthStoreOverrides }) => (
health_items: {
...defaultHealthStoreValues,
...healthStoreOverrides,
}
},
is_shipping_loaded: true,
},
})}>
{children}
Expand Down
7 changes: 3 additions & 4 deletions client/apps/plugin-status/view.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import {
toggleDebugging,
} from './state/actions';

const StatusView = ( { onLoggingToggle, onDebuggingToggle, isLoggingEnabled, isDebuggingEnabled, taxRateBackups, translate } ) => {
const StatusView = ( { onLoggingToggle, onDebuggingToggle, isLoggingEnabled, isDebuggingEnabled, taxRateBackups, translate, isShippingLoaded } ) => {
return (
<div>
<GlobalNotices id="notices" notices={ notices.list } />
Expand All @@ -47,9 +47,7 @@ const StatusView = ( { onLoggingToggle, onDebuggingToggle, isLoggingEnabled, isD
falseText={ translate( 'Disabled' ) }
onUpdate={ onLoggingToggle }
/>
<LogView
logKey="shipping"
title={ translate( 'Shipping Log' ) } />
{ isShippingLoaded && <LogView logKey="shipping" title={ translate( 'Shipping Log' ) }/> }
<LogView
logKey="taxes"
title={ translate( 'Taxes Log' ) } />
Expand Down Expand Up @@ -112,6 +110,7 @@ const mapStateToProps = ( state ) => ( {
isLoggingEnabled: Boolean( state.status.logging_enabled ),
isDebuggingEnabled: Boolean( state.status.debug_enabled ),
taxRateBackups: state.status.tax_rate_backups,
isShippingLoaded: state.status.is_shipping_loaded,
} );

const mapDispatchToProps = {
Expand Down
3 changes: 2 additions & 1 deletion client/apps/print-test-label/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import './style.scss';
import PrintTestLabelView from './view';
import reducer from './state/reducer';

export default ( { paperSize, storeOptions } ) => ( {
export default ( { paperSize, storeOptions, isShippingLoaded } ) => ( {
getReducer() {
return reducer;
},
Expand All @@ -19,6 +19,7 @@ export default ( { paperSize, storeOptions } ) => ( {
return {
paperSize,
country: storeOptions.origin_country,
isShippingLoaded,
};
},

Expand Down
7 changes: 6 additions & 1 deletion client/apps/print-test-label/view.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,14 @@ class PrintTestLabelView extends Component {
onPaperSizeChange = ( event ) => this.props.updatePaperSize( event.target.value );

render() {
const { paperSize, country, printingInProgress, error, print } = this.props;
const { paperSize, country, printingInProgress, error, print, isShippingLoaded } = this.props;
const paperSizes = getPaperSizes( country );

// Bail early if shipping is not enabled since it no longer makes sense to do label test prints.
if ( ! isShippingLoaded ) {
return null;
}

return (
<SettingsGroupCard heading={ __( 'Print' ) } >
{ error && <ErrorNotice>{ error }</ErrorNotice> }
Expand Down
3 changes: 2 additions & 1 deletion client/apps/shipping-label/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import { mergeHandlers } from 'state/action-watchers/utils';
import initializeLabelsState from 'woocommerce/woocommerce-services/lib/initialize-labels-state';
import './style.scss';

export default ( { order, accountSettings, packagesSettings, shippingLabelData, continents, context, items } ) => {
export default ( { order, accountSettings, packagesSettings, shippingLabelData, continents, euCountries, context, items } ) => {
const orderId = order ? order.id : null;
const isPreloaded = ( undefined !== accountSettings );

Expand Down Expand Up @@ -81,6 +81,7 @@ export default ( { order, accountSettings, packagesSettings, shippingLabelData,
}
initialState.extensions.woocommerce.sites[1].data = {
locations: continents,
euCountries
}

return initialState;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,15 @@ export const getAllCountries = ( state, siteId = getSelectedSiteId( state ) ) =>
return sortBy( allCountries, 'name' );
};

/**
* @param {Object} state Whole Redux state tree
* @param {Number} [siteId] Site ID to check. If not provided, the Site ID selected in the UI will be used
* @return {Array} An array of EU countries represented by { code, name, states } objects. Sorted alphabetically by name.
*/
export const getEUCountries = ( state, siteId = getSelectedSiteId( state ) ) => {
return get( state, [ 'extensions', 'woocommerce', 'sites', siteId, 'data', 'euCountries' ] );
};

/**
* @param {Object} state Whole Redux state tree
* @param {String} continentCode 2-letter continent code
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ import {
areLocationsErrored,
getCountryName,
getAllCountryNames,
getEUCountries,
getStates,
hasStates,
} from 'woocommerce/state/sites/data/locations/selectors';
Expand Down Expand Up @@ -339,7 +340,9 @@ export const getCustomsErrors = (
packages,
customs,
destinationCountryCode,
destinationCountryName
destinationCountryName,
state,
siteId = getSelectedSiteId( state )
) => {
const usedProductIds = uniq(
flatten( map( packages, pckg => map( pckg.items, 'product_id' ) ) )
Expand Down Expand Up @@ -437,6 +440,8 @@ export const getCustomsErrors = (
}
if ( itemData.tariffNumber && 6 !== itemData.tariffNumber.length ) {
itemErrors.tariffNumber = translate( 'The tariff number must be 6 digits long' );
} else if ( ! itemData.tariffNumber && isEUCountry( state, destinationCountryCode, siteId ) ) {
itemErrors.tariffNumber = translate( 'The tariff number is required for EU countries destination' );
}
return itemErrors;
} ),
Expand Down Expand Up @@ -501,7 +506,9 @@ export const getFormErrors = createSelector(
form.packages.selected,
form.customs,
destinationCountryCode,
destinationCountryName
destinationCountryName,
state,
siteId
),
rates: getRatesErrors( form.rates ),
sidebar: getSidebarErrors( paperSize ),
Expand Down Expand Up @@ -536,6 +543,16 @@ export const isAddressUsable = createSelector(
]
);

export const isEUCountry = ( state, destinationCountryCode, siteId = getSelectedSiteId( state ) ) => {
const EUCountries = getEUCountries( state, siteId );

return includes( EUCountries, destinationCountryCode );
}

export const getTariffNumberPlaceholder = ( state, destinationCountryCode, siteId = getSelectedSiteId( state ) ) => {
return ! isEUCountry( state, destinationCountryCode, siteId ) ? translate( 'Optional' ) : '';
}

export const isCustomsFormStepSubmitted = (
state,
orderId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import {
} from 'woocommerce/woocommerce-services/state/shipping-label/actions';
import {
getShippingLabel,
getTariffNumberPlaceholder,
isLoaded,
getFormErrors,
} from 'woocommerce/woocommerce-services/state/shipping-label/selectors';
Expand All @@ -40,6 +41,7 @@ const ItemRow = props => {
value,
tariffNumber,
originCountry,
TariffNumberPlaceholder,
countryNames,
weightUnit,
} = props;
Expand All @@ -59,7 +61,7 @@ const ItemRow = props => {
id={ packageId + '_' + productId + '_tariffNumber' }
className="customs-step__item-code-column"
title={ <TariffCodeTitle /> }
placeholder={ translate( 'Optional' ) }
placeholder={ TariffNumberPlaceholder }
value={ tariffNumber }
updateValue={ props.setCustomsItemTariffNumber }
error={ errors.tariffNumber }
Expand Down Expand Up @@ -104,6 +106,7 @@ ItemRow.propTypes = {
weight: PropTypes.oneOfType( [ PropTypes.string, PropTypes.number ] ).isRequired,
value: PropTypes.oneOfType( [ PropTypes.string, PropTypes.number ] ).isRequired,
originCountry: PropTypes.string.isRequired,
TariffNumberPlaceholder: PropTypes.string.isRequired,
errors: PropTypes.object,
countryNames: PropTypes.object.isRequired,
setCustomsItemDescription: PropTypes.func.isRequired,
Expand All @@ -116,6 +119,8 @@ ItemRow.propTypes = {
const mapStateToProps = ( state, { orderId, siteId, productId } ) => {
const isShippingLabelLoaded = isLoaded( state, orderId, siteId );
const shippingLabel = getShippingLabel( state, orderId, siteId );
const destinationCountry = shippingLabel.form.destination.values.country;
const TariffNumberPlaceholder = getTariffNumberPlaceholder( state, destinationCountry, siteId );
const {
description,
defaultDescription,
Expand All @@ -132,6 +137,7 @@ const mapStateToProps = ( state, { orderId, siteId, productId } ) => {
weight,
value,
originCountry,
TariffNumberPlaceholder,
errors: isShippingLabelLoaded
? getFormErrors( state, orderId, siteId ).customs.items[ productId ]
: {},
Expand Down
2 changes: 1 addition & 1 deletion npm-shrinkwrap.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "woocommerce-services",
"version": "2.6.0",
"version": "2.7.0",
"scripts": {
"start": "cross-env NODE_ENV=development CALYPSO_CLIENT=true webpack-dev-server --hot --inline --watch --content-base dist --port 8085",
"prepare": "cd wp-calypso && npm ci && cd .. && husky install",
Expand Down
Loading

0 comments on commit 8fdc5f5

Please sign in to comment.