Skip to content

Commit f00d38f

Browse files
authored
Merge pull request #126 from Bit-Apps-Pro/rishad-dev-tmp
Bump version to 2.7.3
2 parents bcb97e0 + f28e18b commit f00d38f

26 files changed

+1231
-81
lines changed

bitwpfi.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
* Plugin Name: Bit Integrations
55
* Plugin URI: https://bitapps.pro/bit-integrations
66
* 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
7-
* Version: 2.7.2
7+
* Version: 2.7.3
88
* Author: Automation & Integration Plugin - Bit Apps
99
* Author URI: https://bitapps.pro
1010
* Text Domain: bit-integrations
1111
* Requires PHP: 7.4
1212
* Requires at least: 5.1
13-
* Tested up to: 6.8
13+
* Tested up to: 6.9
1414
* Domain Path: /languages
1515
* License: GPLv2 or later
1616
*/
@@ -24,7 +24,7 @@
2424
$btcbi_db_version = '1.1';
2525

2626
// Define most essential constants.
27-
define('BTCBI_VERSION', '2.7.2');
27+
define('BTCBI_VERSION', '2.7.3');
2828
define('BTCBI_PLUGIN_MAIN_FILE', __FILE__);
2929

3030
require_once plugin_dir_path(__FILE__) . 'includes/loader.php';

frontend-dev/src/Utils/StaticData/tutorialLinks.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -642,6 +642,10 @@ const tutorialLinks = {
642642
acpt: {
643643
youTubeLink: '',
644644
docLink: ''
645+
},
646+
mailerPress: {
647+
youTubeLink: '',
648+
docLink: ''
645649
}
646650
}
647651
export default tutorialLinks

frontend-dev/src/components/AllIntegrations/EditInteg.jsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ const EditMailChimp = lazy(() => import('./MailChimp/EditMailChimp'))
2424
const Mail = lazy(() => import('./Mail/Mail'))
2525
const EditPod = lazy(() => import('./Pods/EditPod'))
2626
const EditMailPoet = lazy(() => import('./MailPoet/EditMailPoet'))
27+
const EditMailerPress = lazy(() => import('./MailerPress/EditMailerPress'))
2728
const EditSendinBlue = lazy(() => import('./SendinBlue/EditSendinBlue'))
2829
const EditWooCommerce = lazy(() => import('./WooCommerce/EditWooCommerce'))
2930
const EditActiveCampaign = lazy(() => import('./ActiveCampaign/EditActiveCampaign'))
@@ -270,6 +271,8 @@ const IntegType = memo(({ allIntegURL, flow }) => {
270271
return <EditPod allIntegURL={allIntegURL} />
271272
case 'Mail Poet':
272273
return <EditMailPoet allIntegURL={allIntegURL} />
274+
case 'MailerPress':
275+
return <EditMailerPress allIntegURL={allIntegURL} />
273276
case 'SendinBlue':
274277
case 'Brevo(Sendinblue)':
275278
return <EditSendinBlue allIntegURL={allIntegURL} />

frontend-dev/src/components/AllIntegrations/GlobalIntegrationHelper.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* eslint-disable no-unused-expressions */
22

3-
import bitsFetch from "../../Utils/bitsFetch"
3+
import bitsFetch from '../../Utils/bitsFetch'
44

55
export const addFieldMap = (i, confTmp, setConf) => {
66
const newConf = { ...confTmp }
@@ -30,19 +30,19 @@ export const handleFieldMapping = (event, index, conftTmp, setConf) => {
3030
export const handleCustomValue = (event, index, conftTmp, setConf) => {
3131
const newConf = { ...conftTmp }
3232

33-
newConf.field_map[index].customValue = event.target.value
33+
newConf.field_map[index].customValue = event?.target?.value || event
3434
setConf({ ...newConf })
3535
}
3636

3737
export const handleAuthData = async (actionName, tokenDetails, userInfo, setAuthData) => {
38-
const requestParams = {};
38+
const requestParams = {}
3939
requestParams.actionName = actionName
4040
requestParams.tokenDetails = tokenDetails
4141
requestParams.userInfo = userInfo
42-
await bitsFetch(requestParams, 'store/authData').then((resp) => {
42+
await bitsFetch(requestParams, 'store/authData').then(resp => {
4343
if (resp.success) {
4444
if (resp.data.data.length > 0) {
45-
setAuthData(resp.data.data);
45+
setAuthData(resp.data.data)
4646
}
4747
// setSnackbar({ show: true, msg: 'Authorization Data Fetched Successfully' })
4848
}

frontend-dev/src/components/AllIntegrations/IntegInfo.jsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ const ZohoRecruitAuthorization = lazy(() => import('./ZohoRecruit/ZohoRecruitAut
3030
const GoogleSheetAuthorization = lazy(() => import('./GoogleSheet/GoogleSheetAuthorization'))
3131
const MailChimpAuthorization = lazy(() => import('./MailChimp/MailChimpAuthorization'))
3232
const MailPoetAuthorization = lazy(() => import('./MailPoet/MailPoetAuthorization'))
33+
const MailerPressAuthorization = lazy(() => import('./MailerPress/MailerPressAuthorization'))
3334
const SendinblueAuthorization = lazy(() => import('./SendinBlue/SendinBlueAuthorization'))
3435
const WooCommerceAuthorization = lazy(() => import('./WooCommerce/WooCommerceAuthorization'))
3536
const ActiveCampaignAuthorization = lazy(() => import('./ActiveCampaign/ActiveCampaignAuthorization'))
@@ -290,6 +291,8 @@ export default function IntegInfo() {
290291
)
291292
case 'Mail Poet':
292293
return <MailPoetAuthorization mailPoetConf={integrationConf} step={1} isInfo />
294+
case 'MailerPress':
295+
return <MailerPressAuthorization mailerPressConf={integrationConf} step={1} isInfo />
293296
case 'SendinBlue':
294297
case 'Brevo(Sendinblue)':
295298
return <SendinblueAuthorization sendinBlueConf={integrationConf} step={1} isInfo />
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import { useState } from 'react'
2+
import { useNavigate, useParams } from 'react-router-dom'
3+
import { useRecoilState, useRecoilValue } from 'recoil'
4+
import { $actionConf, $formFields, $newFlow } from '../../../GlobalStates'
5+
import { __ } from '../../../Utils/i18nwrap'
6+
import SnackMsg from '../../Utilities/SnackMsg'
7+
import { saveActionConf } from '../IntegrationHelpers/IntegrationHelpers'
8+
import IntegrationStepThree from '../IntegrationHelpers/IntegrationStepThree'
9+
import SetEditIntegComponents from '../IntegrationHelpers/SetEditIntegComponents'
10+
import { checkMappedFields, handleInput } from './MailerPressCommonFunc'
11+
import MailerPressIntegLayout from './MailerPressIntegLayout'
12+
13+
export default function EditMailerPress({ allIntegURL }) {
14+
const navigate = useNavigate()
15+
const { id, formID } = useParams()
16+
17+
const [mailerPressConf, setMailerPressConf] = useRecoilState($actionConf)
18+
const [flow, setFlow] = useRecoilState($newFlow)
19+
const formFields = useRecoilValue($formFields)
20+
const [isLoading, setIsLoading] = useState(false)
21+
const [snack, setSnackbar] = useState({ show: false })
22+
23+
return (
24+
<div style={{ width: 900 }}>
25+
<SnackMsg snack={snack} setSnackbar={setSnackbar} />
26+
27+
<div className="flx mt-3">
28+
<b className="wdt-200 d-in-b">{__('Integration Name:', 'bit-integrations')}</b>
29+
<input
30+
className="btcd-paper-inp w-5"
31+
onChange={e => handleInput(e, mailerPressConf, setMailerPressConf)}
32+
name="name"
33+
value={mailerPressConf.name}
34+
type="text"
35+
placeholder={__('Integration Name...', 'bit-integrations')}
36+
/>
37+
</div>
38+
<br />
39+
40+
<SetEditIntegComponents entity={flow.triggered_entity} setSnackbar={setSnackbar} />
41+
42+
<MailerPressIntegLayout
43+
formID={formID}
44+
formFields={formFields}
45+
mailerPressConf={mailerPressConf}
46+
setMailerPressConf={setMailerPressConf}
47+
setSnackbar={setSnackbar}
48+
setIsLoading={setIsLoading}
49+
isLoading={isLoading}
50+
/>
51+
52+
<IntegrationStepThree
53+
edit
54+
saveConfig={() =>
55+
saveActionConf({
56+
flow,
57+
allIntegURL,
58+
conf: mailerPressConf,
59+
navigate,
60+
id,
61+
edit: 1,
62+
setIsLoading,
63+
setSnackbar
64+
})
65+
}
66+
disabled={!checkMappedFields(mailerPressConf)}
67+
isLoading={isLoading}
68+
dataConf={mailerPressConf}
69+
setDataConf={setMailerPressConf}
70+
formFields={formFields}
71+
/>
72+
<br />
73+
</div>
74+
)
75+
}
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
import { useState } from 'react'
2+
import 'react-multiple-select-dropdown-lite/dist/index.css'
3+
import { useNavigate, useParams } from 'react-router-dom'
4+
import BackIcn from '../../../Icons/BackIcn'
5+
import { __ } from '../../../Utils/i18nwrap'
6+
import SnackMsg from '../../Utilities/SnackMsg'
7+
import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers'
8+
import IntegrationStepThree from '../IntegrationHelpers/IntegrationStepThree'
9+
import MailerPressAuthorization from './MailerPressAuthorization'
10+
import { checkMappedFields } from './MailerPressCommonFunc'
11+
import MailerPressIntegLayout from './MailerPressIntegLayout'
12+
13+
export default function MailerPress({ formFields, setFlow, flow, allIntegURL }) {
14+
const navigate = useNavigate()
15+
const { formID } = useParams()
16+
const [isLoading, setIsLoading] = useState(false)
17+
const [step, setStep] = useState(1)
18+
const [snack, setSnackbar] = useState({ show: false })
19+
const [mailerPressConf, setMailerPressConf] = useState({
20+
name: 'MailerPress',
21+
type: 'MailerPress',
22+
field_map: [{ formField: '', mailerPressField: '' }],
23+
lists: [],
24+
tags: [],
25+
actions: {},
26+
mainAction: ''
27+
})
28+
29+
const nextPage = val => {
30+
setTimeout(() => {
31+
document.getElementById('btcd-settings-wrp').scrollTop = 0
32+
}, 300)
33+
if (val === 3) {
34+
if (!checkMappedFields(mailerPressConf)) {
35+
setSnackbar({
36+
show: true,
37+
msg: __('Please map all required fields to continue.', 'bit-integrations')
38+
})
39+
return
40+
}
41+
if (mailerPressConf.name !== '' && mailerPressConf.field_map.length > 0) {
42+
setStep(val)
43+
}
44+
} else {
45+
setStep(val)
46+
}
47+
}
48+
49+
return (
50+
<div>
51+
<SnackMsg snack={snack} setSnackbar={setSnackbar} />
52+
<div className="txt-center mt-2">{/* <Steps step={3} active={step} /> */}</div>
53+
54+
{/* STEP 1 */}
55+
<MailerPressAuthorization
56+
formID={formID}
57+
mailerPressConf={mailerPressConf}
58+
setMailerPressConf={setMailerPressConf}
59+
step={step}
60+
nextPage={nextPage}
61+
isLoading={isLoading}
62+
setIsLoading={setIsLoading}
63+
setSnackbar={setSnackbar}
64+
/>
65+
66+
{/* STEP 2 */}
67+
<div
68+
className="btcd-stp-page"
69+
style={{
70+
width: step === 2 && 900,
71+
height: step === 2 && 'auto',
72+
minHeight: step === 2 && `${200}px`
73+
}}>
74+
<MailerPressIntegLayout
75+
formID={formID}
76+
formFields={formFields}
77+
mailerPressConf={mailerPressConf}
78+
setMailerPressConf={setMailerPressConf}
79+
setSnackbar={setSnackbar}
80+
setIsLoading={setIsLoading}
81+
isLoading={isLoading}
82+
/>
83+
<br />
84+
<br />
85+
<br />
86+
<button
87+
onClick={() => nextPage(3)}
88+
disabled={mailerPressConf.field_map.length < 1}
89+
className="btn f-right btcd-btn-lg purple sh-sm flx"
90+
type="button">
91+
{__('Next', 'bit-integrations')}
92+
<BackIcn className="ml-1 rev-icn" />
93+
</button>
94+
</div>
95+
96+
{/* STEP 3 */}
97+
<IntegrationStepThree
98+
step={step}
99+
saveConfig={() =>
100+
saveIntegConfig(flow, setFlow, allIntegURL, mailerPressConf, navigate, '', '', setIsLoading)
101+
}
102+
isLoading={isLoading}
103+
/>
104+
</div>
105+
)
106+
}
107+

0 commit comments

Comments
 (0)