Skip to content

Commit 1cbe5d0

Browse files
committed
feat: wishlist update member action added
1 parent 8309905 commit 1cbe5d0

File tree

4 files changed

+32
-49
lines changed

4 files changed

+32
-49
lines changed

frontend-dev/src/components/AllIntegrations/WishlistMember/WishlistMemberCommonFunc.js

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -96,45 +96,3 @@ export const refreshLevels = (setWishlistMemberConf, setIsLoading, setSnackbar)
9696
})
9797
.catch(() => setIsLoading(false))
9898
}
99-
100-
export const refreshMailpoetHeader = (
101-
wishlistMemberConf,
102-
setWishlistMemberConf,
103-
setIsLoading,
104-
setSnackbar
105-
) => {
106-
bitsFetch({}, 'mail_poet_list_headers')
107-
.then(result => {
108-
if (result && result.success) {
109-
const newConf = { ...wishlistMemberConf }
110-
if (result.data.wishlistMemberFields) {
111-
newConf.default.fields = result.data.wishlistMemberFields
112-
const { fields } = newConf.default
113-
newConf.field_map = Object.values(fields)
114-
.filter(f => f.required)
115-
.map(f => ({ formField: '', wishlistMemberField: f.id, required: true }))
116-
setSnackbar({ show: true, msg: __('Mailpoet fields refreshed', 'bit-integrations') })
117-
} else {
118-
setSnackbar({
119-
show: true,
120-
msg: __(
121-
'No Mailpoet fields found. Try changing the header row number or try again',
122-
'bit-integrations'
123-
)
124-
})
125-
}
126-
127-
if (result.data.tokenDetails) {
128-
newConf.tokenDetails = result.data.tokenDetails
129-
}
130-
setWishlistMemberConf({ ...newConf })
131-
} else {
132-
setSnackbar({
133-
show: true,
134-
msg: __('Mailpoet fields refresh failed. please try again', 'bit-integrations')
135-
})
136-
}
137-
setIsLoading(false)
138-
})
139-
.catch(() => setIsLoading(false))
140-
}

frontend-dev/src/components/AllIntegrations/WishlistMember/WishlistMemberFieldMap.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ export default function WishlistMemberFieldMap({
8181
<select
8282
className="btcd-paper-inp"
8383
disabled={i < requiredFlds.length}
84-
name="wishlistFields"
85-
value={i < requiredFlds.length ? requiredFlds[i].key || '' : field.wishlistFields || ''}
84+
name="wishlistMemberField"
85+
value={i < requiredFlds.length ? requiredFlds[i].key || '' : field.wishlistMemberField || ''}
8686
onChange={ev => handleFieldMapping(ev, i)}>
8787
<option value="">{__('Select Field', 'bit-integrations')}</option>
8888
{i < requiredFlds.length ? (

frontend-dev/src/components/AllIntegrations/WishlistMember/staticData.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,14 @@ export const memberFields = [
3737
{ key: 'country', label: __('Country', 'bit-integrations'), required: false }
3838
]
3939

40+
const updateMemberFields = memberFields.map(field =>
41+
field.key === 'user_login' ? { ...field, required: false } : field
42+
)
43+
4044
export const actionFieldsMap = {
4145
create_level: levelNameField,
4246
update_level: [...LevelIdField, ...levelNameField],
4347
delete_level: LevelIdField,
44-
create_member: memberFields
48+
create_member: memberFields,
49+
update_member: updateMemberFields
4550
}

includes/Actions/WishlistMember/RecordApiHelper.php

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public function createMember($finalData)
7676
if (empty($finalData['user_login']) || empty($finalData['user_email'])) {
7777
return [
7878
'success' => false,
79-
'ERROR' => __('Username, email, and membership level are required fields.', 'bit-integrations')
79+
'ERROR' => __('Username, email are required fields.', 'bit-integrations')
8080
];
8181
}
8282

@@ -91,6 +91,20 @@ public function createMember($finalData)
9191
);
9292
}
9393

94+
public function updateMember($finalData)
95+
{
96+
if (empty($finalData['user_email'])) {
97+
return [
98+
'success' => false,
99+
'ERROR' => __('Email is a required field.', 'bit-integrations')
100+
];
101+
}
102+
103+
return self::handleFilterResponse(
104+
apply_filters('wishlist_update_member', false, $finalData)
105+
);
106+
}
107+
94108
public function execute($fieldValues, $fieldMap, $action)
95109
{
96110
if (!WishlistMemberController::isPluginInstalled()) {
@@ -128,6 +142,13 @@ public function execute($fieldValues, $fieldMap, $action)
128142

129143
break;
130144

145+
case 'update_member':
146+
$type = 'member';
147+
$type_name = 'Update Member';
148+
$recordApiResponse = $this->updateMember($finalData);
149+
150+
break;
151+
131152
default:
132153
$type = 'record';
133154
$type_name = 'insert';
@@ -150,15 +171,14 @@ public function execute($fieldValues, $fieldMap, $action)
150171
private static function setFieldMap($fieldMap, $fieldValues)
151172
{
152173
$finalData = [];
153-
154174
foreach ($fieldMap as $fieldPair) {
155175
if (empty($fieldPair->wishlistMemberField)) {
156176
continue;
157177
}
158178

159179
$finalData[$fieldPair->wishlistMemberField] = ($fieldPair->formField == 'custom' && !empty($fieldPair->customValue))
160-
? Common::replaceFieldWithValue($fieldPair->customValue, $fieldValues)
161-
: $fieldValues[$fieldPair->formField];
180+
? Common::replaceFieldWithValue($fieldPair->customValue, $fieldValues)
181+
: $fieldValues[$fieldPair->formField];
162182
}
163183

164184
return $finalData;

0 commit comments

Comments
 (0)