Add WooCommerce customers list [MAILPOET-1721]

This commit is contained in:
wxa
2019-01-17 21:42:57 +03:00
parent ad8b366ea5
commit a4ff9822ad
23 changed files with 217 additions and 55 deletions

View File

@@ -6,6 +6,10 @@ import PropTypes from 'prop-types';
import Listing from 'listing/listing.jsx';
const isWPUsersSegment = segment => segment.type === 'wp_users';
const isWooCommerceCustomersSegment = segment => segment.type === 'woocommerce_users';
const isSpecialSegment = segmt => isWPUsersSegment(segmt) || isWooCommerceCustomersSegment(segmt);
const columns = [
{
name: 'name',
@@ -104,7 +108,7 @@ const itemActions = [
);
},
display: function display(segment) {
return (segment.type !== 'wp_users');
return isWPUsersSegment(segment);
},
},
{
@@ -129,7 +133,7 @@ const itemActions = [
);
}),
display: function display(segment) {
return (segment.type !== 'wp_users');
return !isSpecialSegment(segment);
},
},
{
@@ -144,7 +148,7 @@ const itemActions = [
);
},
display: function display(segment) {
return (segment.type === 'wp_users');
return isWPUsersSegment(segment);
},
},
{
@@ -173,7 +177,7 @@ const itemActions = [
});
},
display: function display(segment) {
return (segment.type === 'wp_users');
return isWPUsersSegment(segment);
},
},
{
@@ -187,7 +191,7 @@ const itemActions = [
{
name: 'trash',
display: function display(segment) {
return (segment.type !== 'wp_users');
return !isSpecialSegment(segment);
},
},
];
@@ -207,8 +211,9 @@ class SegmentList extends React.Component {
let segmentName;
if (segment.type === 'wp_users') {
// the WP users segment is not editable so just display its name
if (isSpecialSegment(segment)) {
// the WP users and WooCommerce customers segments
// are not editable so just display their names
segmentName = (
<span className="row-title">{ segment.name }</span>
);

View File

@@ -11,7 +11,7 @@ const fields = [
label: MailPoet.I18n.t('email'),
type: 'text',
disabled: function disabled(subscriber) {
return Number(subscriber.wp_user_id > 0);
return Number(subscriber.wp_user_id > 0) || Number(subscriber.is_woocommerce_user) === 1;
},
},
{
@@ -19,7 +19,7 @@ const fields = [
label: MailPoet.I18n.t('firstname'),
type: 'text',
disabled: function disabled(subscriber) {
return Number(subscriber.wp_user_id > 0);
return Number(subscriber.wp_user_id > 0) || Number(subscriber.is_woocommerce_user) === 1;
},
},
{
@@ -27,7 +27,7 @@ const fields = [
label: MailPoet.I18n.t('lastname'),
type: 'text',
disabled: function disabled(subscriber) {
return Number(subscriber.wp_user_id > 0);
return Number(subscriber.wp_user_id > 0) || Number(subscriber.is_woocommerce_user) === 1;
},
},
{
@@ -41,7 +41,7 @@ const fields = [
bounced: MailPoet.I18n.t('bounced'),
},
filter: function filter(subscriber, value) {
if (Number(subscriber.wp_user_id) > 0 && value === 'unconfirmed') {
if ((Number(subscriber.wp_user_id) > 0 || Number(subscriber.is_woocommerce_user) === 1) && value === 'unconfirmed') {
return false;
}
return true;

View File

@@ -238,7 +238,7 @@ const itemActions = [
{
name: 'trash',
display: function display(subscriber) {
return Number(subscriber.wp_user_id) === 0;
return Number(subscriber.wp_user_id) === 0 && Number(subscriber.is_woocommerce_user) === 0;
},
},
];