Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 69 additions & 12 deletions backend/Actions/PostCreation/PostCreationController.php
Original file line number Diff line number Diff line change
Expand Up @@ -120,20 +120,30 @@ public static function mbFileMapping($metaboxMapField, $fieldValues, $metaboxFie
{
foreach ($metaboxMapField as $fieldPair) {
if (property_exists($fieldPair, 'metaboxFileUpload')) {
if (!empty($fieldValues[$fieldPair->formField])) {
$triggerValue = $fieldPair->formField;
$actionValue = $fieldPair->metaboxFile;
$fieldObject = $metaboxFields->{$actionValue};
if (empty($fieldPair->formField) || empty($fieldPair->metaboxFileUpload)) {
continue;
}

if ($fieldObject['multiple'] == false) {
static::uploadMBFile($postId, $fieldValues[$triggerValue], $fieldObject);
} elseif ($fieldObject['multiple'] == true) {
$attachMentId = Helper::multiFileMoveWpMedia($fieldValues[$triggerValue], $postId);
if (empty($fieldValues[$fieldPair->formField])) {
continue;
}

$triggerValue = $fieldPair->formField;
$actionValue = $fieldPair->metaboxFileUpload;
$fieldObject = isset($metaboxFields[$actionValue]) ? $metaboxFields[$actionValue] : null;
Comment thread
RishadAlam marked this conversation as resolved.

if (empty($fieldObject)) {
continue;
}

if (empty($fieldObject['multiple'])) {
static::uploadMBFile($postId, $fieldValues[$triggerValue], $fieldObject);
} else {
$attachMentId = Helper::multiFileMoveWpMedia($fieldValues[$triggerValue], $postId);

if (!empty($attachMentId) && \is_array($attachMentId)) {
foreach ($attachMentId as $attachemnt) {
add_post_meta($postId, $fieldObject['field_name'], $attachemnt);
}
if (!empty($attachMentId) && \is_array($attachMentId)) {
foreach ($attachMentId as $attachemnt) {
add_post_meta($postId, $fieldObject['field_name'], $attachemnt);
}
}
}
Expand Down Expand Up @@ -286,6 +296,10 @@ public function execute($integrationData, $fieldValues)
if (\in_array($fieldValues['bit-integrator%trigger_data%']['triggered_entity'], $triggers)) {
$fieldValues = Helper::splitStringToarray($fieldValues);
}
$actionType = isset($flowDetails->action_type) ? $flowDetails->action_type : 'createNewPost';
if ($actionType !== 'createNewPost') {
return $this->executeWordPressPostAction($flowDetails, $fieldValues, $actionType, $integrationData->id);
Comment thread
RishadAlam marked this conversation as resolved.
}

$postData = $this->postFieldData($flowDetails);
$postFieldMap = $flowDetails->post_map;
Expand Down Expand Up @@ -363,6 +377,49 @@ public function execute($integrationData, $fieldValues)
}
}

private function executeWordPressPostAction($flowDetails, $fieldValues, $actionType, $integrationId)
{
$defaultResponse = [
'success' => false,
'message' => wp_sprintf(
// translators: %s: Plugin name
__('%s plugin is not installed or activated', 'bit-integrations'),
'Bit Integrations Pro'
),
];

$response = Hooks::apply(
Config::withPrefix($actionType),
$defaultResponse,
$this->buildRequestDataFromPostMap(isset($flowDetails->post_map) ? $flowDetails->post_map : [], $fieldValues),
);

$responseType = isset($response['success']) && $response['success'] ? 'success' : 'error';
LogHandler::save($integrationId, ['type' => 'WP Post Creation', 'type_name' => $actionType], $responseType, $response);

return true;
Comment thread
RishadAlam marked this conversation as resolved.
}

private function buildRequestDataFromPostMap($postMap, $fieldValues)
{
$dataFinal = [];

foreach ($postMap as $mapItem) {
if (empty($mapItem->formField) || empty($mapItem->postField)) {
continue;
}

$triggerValue = $mapItem->formField;
$actionValue = $mapItem->postField;

$dataFinal[$actionValue] = $triggerValue === 'custom' && isset($mapItem->customValue)
? Common::replaceFieldWithValue($mapItem->customValue, $fieldValues)
: ($fieldValues[$triggerValue] ?? '');
}

return $dataFinal;
}

private static function setPostCategories($postId, $postCategories)
{
if (empty($postCategories)) {
Expand Down
55 changes: 53 additions & 2 deletions backend/Actions/Registration/RegistrationController.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

namespace BitApps\Integrations\Actions\Registration;

use BitApps\Integrations\Config;
use BitApps\Integrations\Core\Util\Common;
use BitApps\Integrations\Core\Util\Hooks;
use BitApps\Integrations\Flow\Flow;
use BitApps\Integrations\Log\LogHandler;

Expand Down Expand Up @@ -46,6 +48,14 @@ public function createUser($userData, $flowDetails, $fieldValues)
public function execute($integrationData, $fieldValues)
{
$flowDetails = $integrationData->flow_details;
$actionType = isset($flowDetails->action_type) ? $flowDetails->action_type : 'new_user';

if (!\in_array($actionType, ['new_user', 'updated_user'], true)) {
$this->executeWordPressUserAction($flowDetails, $fieldValues, $actionType);
Comment thread
RishadAlam marked this conversation as resolved.

return;
}

$userFieldMap = $flowDetails->user_map;

$specialTagValue = Flow::specialTagMappingValue($userFieldMap);
Expand All @@ -57,13 +67,54 @@ public function execute($integrationData, $fieldValues)
$userData['role'] = $flowDetails->user_role;
}

if (isset($flowDetails->action_type) && $flowDetails->action_type == 'updated_user') {
if ($actionType === 'updated_user') {
$this->updateUser($userData, $flowDetails, $updatedvalues);
} elseif (isset($flowDetails->action_type) && $flowDetails->action_type == 'new_user') {
} else {
$this->createUser($userData, $flowDetails, $updatedvalues);
}
}

private function executeWordPressUserAction($flowDetails, $fieldValues, $actionType)
{
$defaultResponse = [
'success' => false,
'message' => wp_sprintf(
// translators: %s: Plugin name
__('%s plugin is not installed or activated', 'bit-integrations'),
'Bit Integrations Pro'
),
];

$response = Hooks::apply(
Config::withPrefix($actionType),
$defaultResponse,
$this->buildRequestDataFromUserMap(isset($flowDetails->user_map) ? $flowDetails->user_map : [], $fieldValues),
);

$responseType = isset($response['success']) && $response['success'] ? 'success' : 'error';
LogHandler::save($this->_integrationID, ['type' => 'WP User Registration', 'type_name' => $actionType], $responseType, $response);
}
Comment thread
RishadAlam marked this conversation as resolved.

private function buildRequestDataFromUserMap($userMap, $fieldValues)
{
$dataFinal = [];

foreach ($userMap as $mapItem) {
if (empty($mapItem->formField) || empty($mapItem->userField)) {
continue;
}

$triggerValue = $mapItem->formField;
$actionValue = $mapItem->userField;

$dataFinal[$actionValue] = $triggerValue === 'custom' && isset($mapItem->customValue)
? Common::replaceFieldWithValue($mapItem->customValue, $fieldValues)
: ($fieldValues[$triggerValue] ?? '');
}

return $dataFinal;
}

private function userFieldMapping($user_map, $fieldValues, $flowDetails)
{
$fieldData = [];
Expand Down
Loading
Loading