diff --git a/backend/Actions/MailPoet/RecordApiHelper.php b/backend/Actions/MailPoet/RecordApiHelper.php index 530370f2a..d45b81920 100644 --- a/backend/Actions/MailPoet/RecordApiHelper.php +++ b/backend/Actions/MailPoet/RecordApiHelper.php @@ -31,14 +31,14 @@ public function __construct($integId) static::$mailPoet_api = \MailPoet\API\API::MP('v1'); } - public function insertRecord($subscriber, $lists, $actions) + public function insertRecord($subscriber, $lists, $actions, $options = []) { try { // try to find if user is already a subscriber $existingSubscriber = static::$mailPoet_api->getSubscriber($subscriber['email']); if (!$existingSubscriber) { - return static::addSubscriber($subscriber, $lists); + return static::addSubscriber($subscriber, $lists, $options); } if (!empty($actions->update)) { @@ -54,19 +54,25 @@ public function insertRecord($subscriber, $lists, $actions) // translators: %s: Plugin name $errorMessages = wp_sprintf(__('%s is not active or not installed', 'bit-integrations'), 'Bit Integrations Pro'); } elseif (!$response['success']) { - $errorMessages = $response('message'); + $errorMessages = $response['message']; } if (isset($errorMessages)) { - LogHandler::save($this->_integrationID, ['type' => 'record', 'type_name' => 'update'], 'error', $errorMessages); + return [ + 'success' => false, + 'message' => $errorMessages, + ]; } - } - return static::addSubscribeToLists($existingSubscriber['id'], $lists); + $newLists = static::getFilteredList($lists, $existingSubscriber['subscriptions']); + if (!empty($newLists)) { + return static::addSubscribeToLists($existingSubscriber['id'], $newLists, $options); + } + } } catch (\MailPoet\API\MP\v1\APIException $e) { if ($e->getCode() == 4) { // Handle the case where the subscriber doesn't exist - return static::addSubscriber($subscriber, $lists); + return static::addSubscriber($subscriber, $lists, $options); } return [ @@ -91,7 +97,9 @@ public function execute($fieldValues, $fieldMap, $lists, $actions) } $fieldData = static::setFieldMap($fieldMap, $fieldValues); - $recordApiResponse = $this->insertRecord($fieldData, $lists, $actions); + $options = ['send_confirmation_email' => isset($actions->send_confirmation_email)]; + + $recordApiResponse = $this->insertRecord($fieldData, $lists, $actions, $options); if ($recordApiResponse['success']) { LogHandler::save($this->_integrationID, ['type' => 'record', 'type_name' => 'insert'], 'success', $recordApiResponse); @@ -119,14 +127,18 @@ private static function setFieldMap($fieldMap, $fieldValues) return $fieldData; } - private static function addSubscriber($subscriber, $lists) + private static function addSubscriber($subscriber, $lists, $options = []) { try { - $subscriber = static::$mailPoet_api->addSubscriber($subscriber, $lists); + $subscriber = static::$mailPoet_api->addSubscriber($subscriber, $lists, $options); + + if (isset($subscriber['id']) && !empty($lists)) { + return static::addSubscribeToLists($subscriber['id'], $lists, $options); + } return [ - 'success' => true, - 'id' => $subscriber['id'], + 'success' => isset($subscriber['id']) ? true : false, + 'data' => $subscriber, ]; } catch (\MailPoet\API\MP\v1\APIException $e) { return [ @@ -137,10 +149,10 @@ private static function addSubscriber($subscriber, $lists) } } - private static function addSubscribeToLists($subscriber_id, $lists) + private static function addSubscribeToLists($subscriber_id, $lists, $options = []) { try { - $subscriber = static::$mailPoet_api->subscribeToLists($subscriber_id, $lists); + $subscriber = static::$mailPoet_api->subscribeToLists($subscriber_id, $lists, $options); return [ 'success' => true, @@ -154,4 +166,16 @@ private static function addSubscribeToLists($subscriber_id, $lists) ]; } } + + private static function getFilteredList($listIds, $subscriptions) + { + $segmentIds = array_column($subscriptions, 'segment_id'); + + return array_filter( + $listIds, + function ($listId) use ($segmentIds) { + return !\in_array($listId, $segmentIds); + } + ); + } } diff --git a/backend/Actions/MailerLite/MailerLiteController.php b/backend/Actions/MailerLite/MailerLiteController.php index 5f1f815c3..636195a1e 100644 --- a/backend/Actions/MailerLite/MailerLiteController.php +++ b/backend/Actions/MailerLite/MailerLiteController.php @@ -193,7 +193,6 @@ public function execute($integrationData, $fieldValues) $integId = $integrationData->id; $auth_token = $integrationDetails->auth_token; $version = $integrationDetails->version; - $groupIds = $integrationDetails->group_ids ?? ''; $fieldMap = $integrationDetails->field_map ?? ''; $type = $integrationDetails->mailer_lite_type ?? ''; $actions = $integrationDetails->actions ?? ''; @@ -208,7 +207,7 @@ public function execute($integrationData, $fieldValues) } $recordApiHelper = new RecordApiHelper($auth_token, $integrationDetails, $integId, $actions, $version); $mailerliteApiResponse = $recordApiHelper->execute( - $groupIds, + $integrationDetails, $type, $fieldValues, $fieldMap, diff --git a/backend/Actions/MailerLite/RecordApiHelper.php b/backend/Actions/MailerLite/RecordApiHelper.php index d0d41fc11..0e234c852 100644 --- a/backend/Actions/MailerLite/RecordApiHelper.php +++ b/backend/Actions/MailerLite/RecordApiHelper.php @@ -8,8 +8,8 @@ use BitApps\Integrations\Config; use BitApps\Integrations\Core\Util\Common; -use BitApps\Integrations\Core\Util\HttpHelper; use BitApps\Integrations\Core\Util\Hooks; +use BitApps\Integrations\Core\Util\HttpHelper; use BitApps\Integrations\Log\LogHandler; /** @@ -65,7 +65,10 @@ public function existSubscriber($auth_token, $email) $response = HttpHelper::get($apiEndpoints, null, $this->_defaultHeader); - return $response->data->id ?? false; + return [ + 'id' => $response->data->id ?? null, + 'data' => $response->data ?? null + ]; } public function enableDoubleOptIn($auth_token) @@ -104,10 +107,8 @@ public function addSubscriber($auth_token, $groupIds, $type, $finalData) $requestParams = self::prepareRequestParams($finalData, $type, $this->_isMailerLiteV2); - $isExist = $this->existSubscriber($auth_token, $email); - $response = null; - - if ($isExist && empty($this->_actions->update)) { + $existSubscriber = $this->existSubscriber($auth_token, $email); + if ($existSubscriber['id'] && empty($this->_actions->update)) { return [ 'success' => false, 'message' => __('Subscriber already exist', 'bit-integrations'), @@ -121,7 +122,11 @@ public function addSubscriber($auth_token, $groupIds, $type, $finalData) return self::sendToGroups($this, $splitGroupIds, $requestParams, $this->_isMailerLiteV2); } - if ($isExist) { + if ($existSubscriber['id']) { + if (isset($existSubscriber['data']->status) && 'unsubscribed' === $existSubscriber['data']->status) { + $requestParams['resubscribe'] = true; + } + $response = HttpHelper::post($apiEndpoint, $requestParams, $this->_defaultHeader); $response->update = true; @@ -149,9 +154,9 @@ public function deleteSubscriber($auth_token, $finalData, $forget = false) ]; } - $subscriberId = $this->existSubscriber($auth_token, $finalData['email']); + $existSubscriber = $this->existSubscriber($auth_token, $finalData['email']); - if (empty($subscriberId)) { + if (empty($existSubscriber['id'])) { return [ 'success' => false, 'message' => __('Subscriber not exist', 'bit-integrations'), @@ -159,6 +164,8 @@ public function deleteSubscriber($auth_token, $finalData, $forget = false) ]; } + $subscriberId = $existSubscriber['id']; + $response = Hooks::apply(Config::withPrefix('mailerlite_delete_subscriber'), false, $subscriberId, $finalData, $this->_baseUrl, $this->_defaultHeader, $forget); /** @@ -170,6 +177,45 @@ public function deleteSubscriber($auth_token, $finalData, $forget = false) return $response ? $response : (object) ['success' => false, 'message' => __('Bit Integrations Pro is required.', 'bit-integrations'), 'code' => 400]; } + public function unassignSubscriberFromGroup($auth_token, $groupId, $finalData) + { + if (!$this->_isMailerLiteV2) { + return [ + 'success' => false, + 'message' => __('This action is not supported for Classic accounts.', 'bit-integrations'), + 'code' => 400 + ]; + } + + if (empty($finalData['email'])) { + return [ + 'success' => false, + 'message' => __('Required field Email is empty', 'bit-integrations'), + 'code' => 400 + ]; + } + if (empty($groupId)) { + return [ + 'success' => false, + 'message' => __('Required field Group is empty', 'bit-integrations'), + 'code' => 400 + ]; + } + + $existSubscriber = $this->existSubscriber($auth_token, $finalData['email']); + if (empty($existSubscriber['id'])) { + return [ + 'success' => false, + 'message' => __('Subscriber not exist', 'bit-integrations'), + 'code' => 400 + ]; + } + + $response = Hooks::apply(Config::withPrefix('mailerlite_unassign_subscriber_from_group'), false, $existSubscriber['id'], $groupId, $this->_baseUrl, $this->_defaultHeader); + + return $response ? $response : (object) ['success' => false, 'message' => __('Bit Integrations Pro is required.', 'bit-integrations'), 'code' => 400]; + } + public function generateReqDataFromFieldMap($data, $fieldMap) { $dataFinal = []; @@ -188,7 +234,7 @@ public function generateReqDataFromFieldMap($data, $fieldMap) } public function execute( - $groupId, + $integrationDetails, $type, $fieldValues, $fieldMap, @@ -212,7 +258,16 @@ public function execute( break; + case 'unassign_subscriber_from_group': + $groupId = $integrationDetails->selected_group_id ?? ''; + $apiResponse = $this->unassignSubscriberFromGroup($auth_token, $groupId, $finalData); + $typeName = 'unassign-subscriber-from-group'; + $res = ['success' => true, 'message' => __('Subscriber unassigned from group successfully', 'bit-integrations'), 'code' => 200]; + + break; + default: + $groupId = $integrationDetails->group_ids ?? ''; $apiResponse = $this->addSubscriber($auth_token, $groupId, $type, $finalData); $typeName = 'add-subscriber'; $res = ['success' => true, 'message' => isset($apiResponse->update) ? __('Subscriber updated successfully', 'bit-integrations') : __('Subscriber created successfully', 'bit-integrations'), 'code' => 200]; @@ -220,7 +275,7 @@ public function execute( break; } - if (isset($apiResponse->data->id) || isset($apiResponse->id) || str_starts_with((string) HttpHelper::$responseCode, '20')) { + if (isset($apiResponse->data->id) || isset($apiResponse->id) || strpos((string) HttpHelper::$responseCode, '20') === 0) { LogHandler::save($this->_integrationID, wp_json_encode(['type' => 'subscriber', 'type_name' => $typeName]), 'success', wp_json_encode($res)); } else { LogHandler::save($this->_integrationID, wp_json_encode(['type' => 'subscriber', 'type_name' => $typeName]), 'error', wp_json_encode($apiResponse)); diff --git a/backend/Actions/Registration/RegistrationController.php b/backend/Actions/Registration/RegistrationController.php index f865e5995..c13697680 100644 --- a/backend/Actions/Registration/RegistrationController.php +++ b/backend/Actions/Registration/RegistrationController.php @@ -87,7 +87,7 @@ private function userFieldMapping($user_map, $fieldValues, $flowDetails) } if (empty($fieldData['user_pass']) && $flowDetails->action_type !== 'updated_user') { - $fieldData['user_pass'] = random_int(100000, 999999); + $fieldData['user_pass'] = wp_generate_password(24); } return $fieldData; diff --git a/backend/Actions/SendFox/RecordApiHelper.php b/backend/Actions/SendFox/RecordApiHelper.php index 85d72d3bc..4f632fe99 100644 --- a/backend/Actions/SendFox/RecordApiHelper.php +++ b/backend/Actions/SendFox/RecordApiHelper.php @@ -132,40 +132,29 @@ public function execute( $access_token, $integrationDetails ) { - $fieldData = []; if ($integrationDetails->mainAction === '1') { - $type_name = 'Create List'; $finalData = $this->generateListReqDataFromFieldMap($fieldValues, $integrationDetails->field_map_list); - $apiResponseList = $this->createContactList($access_token, $finalData); - - if (property_exists($apiResponseList, 'id')) { - LogHandler::save($this->_integrationID, wp_json_encode(['type' => 'record', 'type_name' => $type_name]), 'success', wp_json_encode($apiResponseList)); - } else { - LogHandler::save($this->_integrationID, wp_json_encode(['type' => 'record', 'type_name' => $type_name]), 'error', wp_json_encode($apiResponseList)); - } + $apiResponse = $this->createContactList($access_token, $finalData); + $type = 'List'; + $event_name = 'Create List'; } if ($integrationDetails->mainAction === '2') { - $type_name = 'Create Contact'; $finalData = $this->generateReqDataFromFieldMap($fieldValues, $fieldMap); $apiResponse = $this->addContact($access_token, $listId, $finalData); - if (property_exists($apiResponse, 'errors')) { - LogHandler::save($this->_integrationID, wp_json_encode(['type' => 'contact', 'type_name' => $type_name]), 'error', wp_json_encode($apiResponse)); - } else { - LogHandler::save($this->_integrationID, wp_json_encode(['type' => 'record', 'type_name' => $type_name]), 'success', wp_json_encode($apiResponse)); - } + $type = 'Contact'; + $event_name = 'Create Contact'; } if ($integrationDetails->mainAction === '3') { - $type_name = 'Unsubscribe'; $finalData = $this->generateReqUnsubscribeDataFromFieldMap($fieldValues, $integrationDetails->field_map_unsubscribe); $apiResponse = $this->unsubscribeContact($access_token, $finalData); - if (property_exists($apiResponse, 'id')) { - LogHandler::save($this->_integrationID, wp_json_encode(['type' => 'contact', 'type_name' => $type_name]), 'success', wp_json_encode($apiResponse)); - } else { - LogHandler::save($this->_integrationID, wp_json_encode(['type' => 'record', 'type_name' => $type_name]), 'error', wp_json_encode($apiResponse)); - } + $type = 'Contact'; + $event_name = 'Unsubscribe Contact'; } + $response_type = HttpHelper::$responseCode >= 200 && HttpHelper::$responseCode < 300 ? 'success' : 'error'; + LogHandler::save($this->_integrationID, wp_json_encode(['type' => $type, 'type_name' => $event_name]), $response_type, wp_json_encode($apiResponse)); + return $apiResponse; } } diff --git a/backend/Actions/SureCart/SureCartController.php b/backend/Actions/SureCart/SureCartController.php index eee102ae7..c34aef239 100644 --- a/backend/Actions/SureCart/SureCartController.php +++ b/backend/Actions/SureCart/SureCartController.php @@ -46,9 +46,12 @@ public function checkAuthorization($tokenRequestParams) ]; $request = wp_remote_post($this->api_url . 'webhook_endpoints', $headers); + if (is_wp_error($request)) { + wp_send_json_error($request->get_error_message(), 400); + } $request_body = wp_remote_retrieve_body($request); $request_data = json_decode($request_body); - if ($request_data->code !== 'unauthorized') { + if (!$request_data || $request_data->code !== 'unauthorized') { wp_send_json_success($request_body, 200); } else { wp_send_json_error( diff --git a/backend/Actions/WooCommerce/RecordApiHelper.php b/backend/Actions/WooCommerce/RecordApiHelper.php index bdfab5fc7..34bacf78a 100644 --- a/backend/Actions/WooCommerce/RecordApiHelper.php +++ b/backend/Actions/WooCommerce/RecordApiHelper.php @@ -749,7 +749,19 @@ private function product_added_to_order($fieldDataLine, $module, $customer_id) $order = wc_create_order(['customer_id' => $customer_id]); $product = wc_get_product($product_id); - $order->add_product($product, (int) $lineItem->quantity); + + $lineArgs = []; + if (isset($lineItem->subtotal) && $lineItem->subtotal !== '') { + $lineArgs['subtotal'] = (float) $lineItem->subtotal; + } + if (isset($lineItem->total) && $lineItem->total !== '') { + $lineArgs['total'] = (float) $lineItem->total; + } + if (isset($lineItem->line_subtotal_tax) && $lineItem->line_subtotal_tax !== '') { + $lineArgs['subtotal_tax'] = (float) $lineItem->line_subtotal_tax; + } + + $order->add_product($product, (int) $lineItem->quantity, $lineArgs); return $order; } diff --git a/backend/Config.php b/backend/Config.php index 65886814c..21095bbe1 100644 --- a/backend/Config.php +++ b/backend/Config.php @@ -22,7 +22,7 @@ class Config public const VAR_PREFIX = 'bit_integrations_'; - public const VERSION = '2.8.2'; + public const VERSION = '2.8.3'; public const DB_VERSION = '1.1'; diff --git a/backend/Triggers/Elementor/ElementorController.php b/backend/Triggers/Elementor/ElementorController.php index 00df0beb0..599bb28aa 100644 --- a/backend/Triggers/Elementor/ElementorController.php +++ b/backend/Triggers/Elementor/ElementorController.php @@ -16,7 +16,7 @@ public static function info() 'title' => __('Elementor is the platform web creators choose to build professional WordPress websites, grow their skills, and build their business. Start for free today!', 'bit-integrations'), 'type' => 'custom_form_submission', 'is_active' => self::pluginActive(), - 'documentation_url' => 'https://bitapps.pro/docs/bit-integrations/trigger/elementor-form-integrations', + 'documentation_url' => 'https://bit-integrations.com/wp-docs/trigger/elementor-form-integrations/', 'tutorial_url' => 'https://youtube.com/playlist?list=PL7c6CDwwm-ALGg0fZNLDIHjh1QJPcDSXp&si=HIKa9m0-yjPSXP2p', 'tasks' => [ 'action' => 'elementor/get', diff --git a/bitwpfi.php b/bitwpfi.php index 8d50d045f..3bbda7b66 100644 --- a/bitwpfi.php +++ b/bitwpfi.php @@ -4,7 +4,7 @@ * Plugin Name: Bit Integrations * Plugin URI: https://bitapps.pro/bit-integrations * Description: Bit Integrations is a platform that integrates with over 300+ different platforms to help with various tasks on your WordPress site, like WooCommerce, Form builder, Page builder, LMS, Sales funnels, Bookings, CRM, Webhooks, Email marketing, Social media and Spreadsheets, etc - * Version: 2.8.2 + * Version: 2.8.3 * Author: Automation & Integration Plugin - Bit Apps * Author URI: https://bitapps.pro * Text Domain: bit-integrations @@ -33,7 +33,7 @@ * * @deprecated 2.7.8 Use Config::VERSION instead. */ -define('BTCBI_VERSION', '2.8.2'); +define('BTCBI_VERSION', '2.8.3'); /** * deprecated since version 2.7.8. * diff --git a/frontend/src/Utils/GetLogo.jsx b/frontend/src/Utils/GetLogo.jsx index 6b8ab0516..8aecb8f7e 100644 --- a/frontend/src/Utils/GetLogo.jsx +++ b/frontend/src/Utils/GetLogo.jsx @@ -1,27 +1,43 @@ -import React, { useEffect, useState } from 'react' -import Loader from '../components/Loaders/Loader' +import React, { memo, useEffect, useState } from 'react' import PlaceholderIcon from '../Icons/PlaceholderIcon' +const logoModules = import.meta.glob('../resource/img/integ/*.{png,jpg,jpeg,webp,svg}') + function GetLogo({ name, style, extension }) { - /**TODO: Fix the fluentCRM name in trigger or action */ - const logo = name === 'FluentCrm' ? 'fluentCRM' : camelize(name) // Temporary solution - const dynamicModule = import(`../resource/img/integ/${logo}.${extension}`) - const [Component, setComponent] = useState(null) + const [logo, setLogo] = useState(null) + useEffect(() => { - dynamicModule.then(module => { - setComponent(() => module.default) - }) - }, [name]) - - const loaderStyle = { - display: 'flex', - height: '85%', - justifyContent: 'center', - alignItems: 'center' - } - - return Component ? ( - {`${logo}-logo`} + let isMounted = true + const modulePath = `../resource/img/integ/${camelize(name)}.${extension}` + const importer = logoModules[modulePath] + + if (!importer) { + console.error(`Logo not found for ${name} with extension ${extension}`) + setLogo(null) + return () => { + isMounted = false + } + } + + importer() + .then(module => { + if (isMounted) { + setLogo(() => module.default) + } + }) + .catch(() => { + if (isMounted) { + setLogo(null) + } + }) + + return () => { + isMounted = false + } + }, [name, extension]) + + return logo ? ( + {`${name}-logo`} ) : ( ) @@ -35,4 +51,4 @@ function camelize(name) { .replace(/\s+/g, '') } -export default GetLogo +export default memo(GetLogo) diff --git a/frontend/src/Utils/StaticData/tutorialLinks.js b/frontend/src/Utils/StaticData/tutorialLinks.js index 97d2258b4..fc787d1b0 100644 --- a/frontend/src/Utils/StaticData/tutorialLinks.js +++ b/frontend/src/Utils/StaticData/tutorialLinks.js @@ -1,21 +1,21 @@ const tutorialLinks = { activeCampaign: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJi9NlLdluJLhADHgyymPgf', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/activecampaign-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/activecampaign-integrations/' }, bitForm: { youTubeLink: 'https://www.youtube.com/watch?v=Kdu3f8wLsrk&list=PL7c6CDwwm-AIJN9QZGc3jORO9Z6Rjp0O6&pp=iAQB', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/bit-form-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/bit-form-integrations/' }, autonami: { youTubeLink: 'https://youtube.com/playlist?list=PL7c6CDwwm-AKKvkYEkCSXVfslSI_92xZq&si=K1EdWwex5pVIpTy7', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/funnelkit-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/funnelkit-integrations/' }, acumbamail: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJwT-RmvZ4iuAqhIdG9nZ2S', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/acumbamail-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/acumbamail-integrations/' }, antsAndApps: { youTubeLink: '', @@ -23,29 +23,29 @@ const tutorialLinks = { }, agiled: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKR_aHEcgno5CONC2GXgJj1', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/agiled-crm-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/agiled-crm-integrations/' }, airtable: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKVpJtCejmJnsXrKl4xWLUz', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/airtable-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/airtable-integrations/' }, asana: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALqRZ-IfDlhwqu40W6GG6iP', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/asana-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/asana-integrations/' }, buddyBoss: { youTubeLink: 'https://youtube.com/playlist?list=PL7c6CDwwm-AL1Lmj_7nU7vTQwly34ScS1&si=3OvpQ12uRwVI8W-z', - docLink: 'https://bitapps.pro/docs/bit-integrations/trigger/buddyboss-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/trigger/buddyboss-integrations/' }, benchMark: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIrUyTzC5KAyuEv22VDxXhU', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/benchmark-email-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/benchmark-email-integrations/' }, constantContact: { youTubeLink: 'https://youtube.com/playlist?list=PL7c6CDwwm-ALc1_UJACiwJW3D0eYZeYWK&si=ZbML8PwhZka3X3Z6', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/constant-contact-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/constant-contact-integrations/' }, customAction: { youTubeLink: '', @@ -54,504 +54,504 @@ const tutorialLinks = { customApi: { youTubeLink: 'https://youtube.com/playlist?list=PL7c6CDwwm-AKth-ShFWFrh0F1uWphkMud&si=RIBDhH2FtQqJKhLr', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/customapi-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/customapi-integrations/' }, capsulecrm: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIxhH4bBmlwKKQe71b5D4Y0', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/capsule-crm-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/capsule-crm-integrations/' }, convertKit: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AITR_K9KlAnPTJeYBFcFEcy', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/convertkit-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/convertkit-integrations/' }, clinchPad: { youTubeLink: 'https://www.youtube.com/watch?v=O5fkHW9SucA&list=PL7c6CDwwm-AINXnJjI8oIdygKgE4U5jlg&pp=iAQB', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/clinchpad-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/clinchpad-integrations/' }, clickup: { youTubeLink: 'https://youtube.com/playlist?list=PL7c6CDwwm-AKF5yTZkCfNFnA94Bd848ok&si=wJHzL784d37jp8PK', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/clickup-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/clickup-integrations/' }, coppercrm: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIDfH9sPdxJ9vuUdWuJFx_p', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/copper-crm-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/copper-crm-integrations/' }, dropbox: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AI7DZ2EQhJCISI84iaLhz6C', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/dropbox-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/dropbox-integrations/' }, directIq: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AI9ZIECQakOnGjj8mKggEEl', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/directiq-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/directiq-integrations/' }, discord: { youTubeLink: 'https://youtube.com/playlist?list=PL7c6CDwwm-ALnPrvN-ao1AhwEddKI4rLd&si=6s5TJENXOxRjNAyY', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/discord-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/discord-integrations/' }, elasticEmail: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKGk8q9MzrgeZvIqoP0yrWS', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/elastic-email-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/elastic-email-integrations/' }, encharge: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AImmtJe83OV_alDRJtl_Wm2', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/encharge-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/encharge-integrations/' }, emailOctopus: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJ9CS13FDnTgPfbhjMG2x1O', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/emailoctopus-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/emailoctopus-integrations/' }, fluentCrm: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJy5hZGqcKBmtxO-9TSNlmy', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/fluentcrm-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/fluentcrm-integrations/' }, fluentSupport: { youTubeLink: 'https://youtube.com/playlist?list=PL7c6CDwwm-AJk_-lRrBQGqA0ZdErCb6q0&si=gQTJMXX65Fkh-CMJ', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/fluent-support-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/fluent-support-integrations-as-an-action/' }, freshdesk: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKSOvPOxvQ73003RJqjyzmq', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/freshdesk-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/freshdesk-integrations/' }, freshSales: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJpdtINh80Pq8YQXdp0Wvsi', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/freshsales-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/freshsales-integrations/' }, getgist: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALmJUyTlrw7KyKeWSwa0-9_', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/getgist-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/getgist-integrations/' }, googleSheet: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKuQdXT_tF6D9xEYIF2U5EF', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/google-sheets-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/google-sheets-integrations/' }, googleCalendar: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJ9gfbu6S8M1DCTaWWCWptu', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/google-calendar-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/google-calendar-integrations/' }, googleDrive: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AI1G80MgmdIewYLPqsr7Bl2', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/google-drive-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/google-drive-integrations/' }, googleContacts: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AL2YdvUmvYmjjYx4brP5t81', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/google-contacts-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/google-contacts-integrations/' }, gamiPress: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKvoKAatg5ioOep1N77Ek2d', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/gamipress-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/gamipress-integrations/' }, groundhogg: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AITHa6jPQ3TfYo1P0FsNkF1', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/groundhogg-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/groundhogg-integrations/' }, getResponse: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJ-gbPXJY3k6knIjPXiLuay', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/getresponse-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/getresponse-integrations/' }, giveWp: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJd_oKE5n438PSWLUg35I2v', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/givewp-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/givewp-integrations/' }, hubspot: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIWk0CnBaZfO9DxZnguDBRQ', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/hubspot-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/hubspot-integrations/' }, integratelyLinks: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AInYjAN6svcuBDHJolbCkIZ', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/integrately-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/integrately-integrations/' }, integromatLinks: { youTubeLink: 'https://www.youtube.com/watch?v=jnAnGnwXuk8&list=PL7c6CDwwm-AL8HfPs26xjhzc_7ysFYrCu&pp=iAQB', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/make-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/make-integrations/' }, iFTTT: { youTubeLink: '', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/ifttt-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/ifttt-integrations/' }, insightly: { youTubeLink: 'https://youtube.com/playlist?list=PL7c6CDwwm-AJJZikQUoBuFD6vqyBIsmyA&si=k2zhHewzRw4nW4pu', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/insightly-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/insightly-integrations/' }, keap: { youTubeLink: 'https://youtube.com/playlist?list=PL7c6CDwwm-AIcGnheYoOKjXkF3LK1cLRt&si=kXhE2PE5RK1kuUky', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/keap-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/keap-integrations/' }, klaviyo: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIH42QKENrstP5MpfIieHtz', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/klaviyo-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/klaviyo-integrations/' }, konnectzITLinks: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJWYHqcUzFwVsiCy_2uUxml', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/konnectzit-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/konnectzit-integrations/' }, kirimEmail: { youTubeLink: 'https://youtube.com/playlist?list=PL7c6CDwwm-AJVR9cAQg2OKLSqMC2G1Wlg&si=hVGmDkrezTYULJHO', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/kirim-email-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/kirim-email-integrations/' }, learnDash: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALIfOiZvP_7IGF8ASejyNWD', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/learndash-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/learndash-integrations/' }, lifterLms: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJRGUfkF0prpGOOonGktABQ', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/lifterlms-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/lifterlms-integrations/' }, mailLinks: { youTubeLink: '', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/mail-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/mail-integrations/' }, masterStudyLMS: { youTubeLink: 'https://youtube.com/playlist?list=PL7c6CDwwm-AIRhdvMtVF1lKcj4zD1cFHK&si=RYO0rZbA3OeZdd0w', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/masterstudy-lms-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/masterstudy-lms-integrations/' }, mailBluster: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKizqbIH_kWIGoPaoRUmY0j', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/mailbluster-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/mailbluster-integrations/' }, mailRelay: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AL4Qq3LwifB5Q0FMc9jbCBh', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/mailrelay-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/mailrelay-integrations/' }, mailerLite: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKe60pZMUmlWnHQWKrx8nw8', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/mailerlite-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/mailerlite-integrations/' }, mailchimp: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALUaeqiK9GwBSxVkAod1PzP', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/mailchimp-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/mailchimp-integrations/' }, mailPoet: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJXbv17x7QVuO9dxddO6Z-1', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/mailpoet-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/mailpoet-integrations/' }, mailjet: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKgFBwkpaM0Uah1RPpaq0LO', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/mailjet-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/mailjet-integrations/' }, mautic: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIJBYngBbT4yuYwBd51yEXb', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/mautic-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/mautic-integrations/' }, moosend: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALkxq7mPauOZN1aU2vIWnER', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/moosend-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/moosend-integrations/' }, mailercloud: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIqOr2OMJT8FNh9QPVm2NQ6', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/mailercloud-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/mailercloud-integrations/' }, memberpress: { youTubeLink: '', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/memberpress-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/memberpress-integrations/' }, mailup: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKZoTOsege0sBuR1kPqnUhI', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/mailup-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/mailup-integrations/' }, mailMint: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AI0HbXNIZLj08eYGZQx4z9j', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/mail-mint-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/mail-mint-integrations/' }, notion: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AI-HlfXA-3V-mMcJ_g8L6gl', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/notion-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/notion-integrations/' }, n8nLinks: { youTubeLink: '', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/n8n-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/n8n-integrations/' }, oneDrive: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKmwv84LP85aQDa2HdM9cPc', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/onedrive-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/onedrive-integrations/' }, omniSend: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJtfMscjcjlQWfurvh2jy2J', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/omnisend-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/omnisend-integrations/' }, pabblyLinks: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKWWLROSA7sPf75a4TfNKKg', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/pabbly-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/pabbly-integrations/' }, paidMembershipPro: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJIZ020K3uZyVFDr00u-O6K', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/paid-membership-pro-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/paid-membership-pro-integrations/' }, podLinks: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIQn0ojE2M_eUdCXWsgLPSR', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/pods-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/pods-integrations/' }, postCreation: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIXE9-3U0gaFuqscE32OHcz', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/post-creation-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/post-creation-integrations/' }, pCloud: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKN8YP9ZiA2Nr2YJkPsQL8x', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/pcloud-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/pcloud-integrations/' }, propovoiceCrm: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALypdI2_549Vquqwc5qdDUE', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/propovoice-crm-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/propovoice-crm-integrations/' }, pipeDrive: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJLGkXGJ16QyDTCr-e2bGVw', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/pipedrive-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/pipedrive-integrations/' }, rapidmail: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIptiRzWyY65BhngKd_dqbQ', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/rapid-mail-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/rapid-mail-integrations/' }, registration: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJq1l8SeKisLk60ewQRreg1', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/registration-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/registration-integrations/' }, restrictContent: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJq1l8SeKisLk60ewQRreg1', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/restrict-content-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/restrict-content-integrations/' }, salesflare: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKwi-Ux8XGZEhvhQx8cFEb6', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/salesflare-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/salesflare-integrations/' }, salesforce: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJHfZhVPrQ4KLQMNbVNgcnv', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/salesforce-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/salesforce-integrations/' }, sliceWp: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALhoOseAyoCeffUOwCssDeQ', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/slicewp-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/slicewp-integrations/' }, sendinBlue: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALjCKxsaR8FfT73Qv8mDEQ6', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/brevo-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/brevo-integrations/' }, sendy: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AINF7yrxJGD6b4kghdm6AyS', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/sendy-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/sendy-integrations/' }, sendFox: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKhQzTDGUWR6OAVj-uN1-Ep', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/sendfox-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/sendfox-integrations/' }, syncSpiderLinks: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJLuqpik9F0pBPhvWlYAHpK', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/syncspider-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/syncspider-integrations/' }, slack: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALs0FkFMv0hh5_22fawGJsb', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/slack-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/slack-integrations/' }, selzy: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKX9kTxBGWtQ_6R36EzK68N', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/selzy-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/selzy-integrations/' }, smaily: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKu0p4pFVuQs66fDavvyL0o', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/smaily-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/smaily-integrations/' }, sendGrid: { youTubeLink: 'https://www.youtube.com/watch?v=lIFhcRZX8XQ&list=PL7c6CDwwm-AI1QPJIx4YUwpQLVbTvw1KO&pp=iAQB', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/sendgrid-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/sendgrid-integrations/' }, sureCart: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALWAM6nXMfveSjTUUxONz7Y', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/surecart-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/surecart-integrations/' }, sendPulse: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJlUggyhxxiPMqUvxFfqzGN', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/sendpulse-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/sendpulse-integrations/' }, telegram: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKWf-FAvcCGFqgAzroUvrX5', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/telegram-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/telegram-integrations/' }, tutorlms: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKtLYQYbqcV6W_SYpVH9dJV', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/tutor-lms-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/tutor-lms-integrations/' }, trello: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALwkqPjpDK9SbXzpG6xSJz4', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/trello-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/trello-integrations/' }, twilio: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIdj2m4zjTUt6FaX8lWHeAf', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/twilio-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/twilio-integrations/' }, vbout: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKFBZEeN02rhG3lNCiy76yn', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/vbout-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/vbout-integrations/' }, webHooksLinks: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AK9UTFZUC--v1aCMNms6QUr', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/web-hooks-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/web-hooks-integrations/' }, whatsApp: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALDwFtK0cqQODIFuvy-l8d5', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/whatsapp-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/whatsapp-integrations/' }, wooCommerce: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIjBabvB9-BmttQmFQGVd7_', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/woocommerce-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/woocommerce-integrations/' }, wpCourseware: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALe76SC4ClrJItKDznTPUmv', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/wp-courseware-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/wp-courseware-integrations/' }, wishlistMember: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIsdIcLNYtPXJGnTZ_UmWvT', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/wishlist-integrations/' + docLink: '#' }, zapierLinks: { youTubeLink: 'https://youtube.com/playlist?list=PL7c6CDwwm-ALfK6q_IEHnwcwTsl7ra04w&si=Hz8knNWJA6XhuCb2', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/zapier-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/zapier-integrations/' }, zohoBigin: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALhsMoiWS1Bel1TtjIbtibB', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/zoho-bigin-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/zoho-bigin-integrations/' }, zohoCRM: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALDlpDo9vCBjdiJDJ33Xx0z', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/zoho-crm-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/zoho-crm-integrations/' }, zohoCampaigns: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJ4eDSJRgyqAwztfgPkwuJ9', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/zoho-campaigns-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/zoho-campaigns-integrations/' }, zohoSheet: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJVBb24m1J1z0CcKPhr1Een', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/zoho-sheet-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/zoho-sheet-integrations/' }, zohoDesk: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIbT5j2wupZ1O3USH8gDilg', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/zoho-desk-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/zoho-desk-integrations/' }, zohoFlowLinks: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKT6gxT00O3YFk2GGYvQtMX', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/zoho-flow-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/zoho-flow-integrations/' }, zohoMarketingHub: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKgaz3bG1iFFBYg2JuFpgVJ', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/zoho-marketing-automation-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/zoho-marketing-automation-integrations/' }, zohoRecruit: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIpAJSh09abQZaSe30pwk9E', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/zoho-recruit-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/zoho-recruit-integrations/' }, zoomMeeting: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALsihVZKhQuq5QGINgro4DB', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/zoom-meeting-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/zoom-meeting-integrations/' }, zoomWebinar: { youTubeLink: '', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/zoom-webinar-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/zoom-webinar-integrations/' }, zendesk: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJ8stxvQkVOyDb6V5qXa1jl', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/zendesk-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/zendesk-integrations/' }, mailify: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJjJSkugTCNWW_mfwnFK02i', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/sarbacane-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/sarbacane-integrations/' }, lemlist: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALlqBRAtTILihQLCYtJi2X3', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/lemlist-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/lemlist-integrations/' }, salesmate: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJehgjc-7kcMyoPLOSLDxoc', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/salesmate-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/salesmate-integrations/' }, lionDesk: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AINznAWh8pm4ps1W3IZKEvW', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/liondesk-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/liondesk-integrations/' }, campaignMonitor: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AI4e7TX6ynAYEB2aXsbERha', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/campaign-monitor-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/campaign-monitor-integrations/' }, suiteDash: { youTubeLink: 'https://www.youtube.com/watch?v=avISvvG_2jo&list=PL7c6CDwwm-AJ591_txDeKg0Uj3oyxBpPp&pp=iAQB', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/suitedash-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/suitedash-integrations/' }, companyHub: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIEjYIb_TTxc7tdQmKiBGQY', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/companyhub-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/companyhub-integrations/' }, demio: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALQ0v5wAXYpQe22QTz2KsKI', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/demio-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/demio-integrations/' }, flowlu: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKSV9O2566RvZOXlbN1e_Gi', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/flowlu-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/flowlu-integrations/' }, flowMatticLinks: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJc8D4KWd06kDyrWJJO3RNr', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/flowmattic-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/flowmattic-integrations/' }, automatorWP: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALcrPCvnGNIXaJT04rkSExM', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/automatorwp-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/automatorwp-integrations/' }, uncannyAutomatorLinks: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJ7t5vNXCfq0OFf-NnXtMZ1', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/uncanny-automator-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/uncanny-automator-integrations/' }, thriveAutomatorLinks: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALstSgzji6-5kfB9vClJiQp', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/thrive-automator-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/thrive-automator-integrations/' }, wPWebhooksLinks: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALIvVjEM3v2yfP4iQkAJZ1p', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/wp-webhooks-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/wp-webhooks-integrations/' }, afi: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AIgxCkAnAZPWfTFGC4GUvip', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/advanced-form-integration/' + docLink: 'https://bit-integrations.com/wp-docs/actions/advanced-form-integration/' }, sperse: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-ALVkDySzW0OuD5FUjO4dVcW', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/sperse-io-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/sperse-io-integrations/' }, albato: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKaWl2mxMlCk5GmbZaGXFKZ', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/albato-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/albato-integrations/' }, sureTriggersLinks: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJe5mkdWh-6cn6BXMyRPyXB', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/suretriggers-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/suretriggers-integrations/' }, gravitec: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AKGDLxtmmbbbtYyHHiugYZ0', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/gravitec-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/gravitec-integrations/' }, nimble: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AL3lpTc3L2y9Vs-I7hcSSdf', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/nimble-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/nimble-integrations/' }, perfexCRM: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AITU5v8hwOQecdVxOzblSWp', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/perfex-crm-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/perfex-crm-integrations/' }, livestorm: { youTubeLink: 'https://www.youtube.com/playlist?list=PL7c6CDwwm-AJ_HyGJl8MzNODTp96nWlad', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/livestorm-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/livestorm-integrations/' }, oneHashCRM: { youTubeLink: 'https://youtube.com/playlist?list=PL7c6CDwwm-AKEGvpfNOQRJmr1vBBXxssV&si=OFWMWkNX2y-5l90y', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/onehash-crm-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/onehash-crm-integrations/' }, academyLms: { youTubeLink: @@ -560,26 +560,26 @@ const tutorialLinks = { }, creatorLms: { youTubeLink: '', - docLink: 'https://bit-integrations.com/wp-docs/actions/creator-lms-integrations/' + docLink: '#' }, woodpecker: { youTubeLink: 'https://youtube.com/playlist?list=PL7c6CDwwm-AL0mmQk0yX6u-HnqDzJeXDu&si=MdiwtkYVb0kBIjPD', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/woodpecker-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/woodpecker-integrations/' }, moxiecrm: { youTubeLink: 'https://youtube.com/playlist?list=PL7c6CDwwm-AK-vKTk6K0SjzR9ciayOr87&si=AT29lKvhEvPBsBnR', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/moxie-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/moxie-integrations/' }, wpFusionLinks: { youTubeLink: '', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/wp-fusion-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/wp-fusion-integrations/' }, affiliate: { youTubeLink: 'https://youtube.com/playlist?list=PL7c6CDwwm-AKA6EP_4OMVlEHrBw5kSrQo&si=aVAvTaA0hsb4pzYU', - docLink: 'https://bitapps.pro/docs/bit-integrations/actions/affiliatewp-integrations/' + docLink: 'https://bit-integrations.com/wp-docs/actions/affiliatewp-integrations/' }, newsletter: { youTubeLink: @@ -657,11 +657,11 @@ const tutorialLinks = { }, wpcafe: { youTubeLink: '', - docLink: 'https://bit-integrations.com/wp-docs/actions/wpcafe-integrations-as-action/' + docLink: 'https://bit-integrations.com/wp-docs/actions/wpcafe-integration-as-action/' }, seoPress: { youTubeLink: '', - docLink: 'https://bit-integrations.com/wp-docs/actions/seopress-integrations-as-action/' + docLink: '#' }, ninjaTables: { youTubeLink: '', diff --git a/frontend/src/components/AllIntegrations/ActiveCampaign/ActiveCampaignIntegLayout.jsx b/frontend/src/components/AllIntegrations/ActiveCampaign/ActiveCampaignIntegLayout.jsx index a7a33474a..760faca8f 100644 --- a/frontend/src/components/AllIntegrations/ActiveCampaign/ActiveCampaignIntegLayout.jsx +++ b/frontend/src/components/AllIntegrations/ActiveCampaign/ActiveCampaignIntegLayout.jsx @@ -33,7 +33,6 @@ export default function ActiveCampaignIntegLayout({ setActiveCampaingConf({ ...newConf }) } const setAccount = val => { - console.log(val) setActiveCampaingConf(prevConf => create(prevConf, draftConf => { if (val) { diff --git a/frontend/src/components/AllIntegrations/CopperCRM/CopperCRMAuthorization.jsx b/frontend/src/components/AllIntegrations/CopperCRM/CopperCRMAuthorization.jsx index 0a93acfd1..5b84e2ba2 100644 --- a/frontend/src/components/AllIntegrations/CopperCRM/CopperCRMAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/CopperCRM/CopperCRMAuthorization.jsx @@ -36,7 +36,6 @@ const nextPage = () => { setError(rmError) setCopperCRMConf(newConf) } - console.log(copperCRMConf) const ActiveInstructions = `

${__('Get api secret key', 'bit-integrations')}