Payment Form for PayPal Pro - Version 1.1.46

Version Description

  • New Gutemberg block

=

Download this release

Release Info

Developer codepeople
Plugin Icon 128x128 Payment Form for PayPal Pro
Version 1.1.46
Comparing to
See all releases

Code changes from version 1.1.45 to 1.1.46

Files changed (4) hide show
  1. README.txt +5 -2
  2. cp_ppp.php +66 -1
  3. images/cp_form.gif +0 -0
  4. js/block.js +119 -0
README.txt CHANGED
@@ -266,7 +266,10 @@ A: In all plugin versions you can turn off IP tracking to avoid saving that user
266
= 1.1.45 =
267
* Compatible with WordPress 5.0
268
269
== Upgrade Notice ==
270
271
- = 1.1.45 =
272
- * Compatible with WordPress 5.0
266
= 1.1.45 =
267
* Compatible with WordPress 5.0
268
269
+ = 1.1.46 =
270
+ * New Gutemberg block
271
+
272
== Upgrade Notice ==
273
274
+ = 1.1.46 =
275
+ * New Gutemberg block
cp_ppp.php CHANGED
@@ -3,7 +3,7 @@
3
Plugin Name: Payment Form for PayPal Pro
4
Plugin URI: https://wordpress.dwbooster.com/forms/paypal-payment-pro-form
5
Description: Payment Form for PayPal Pro to accept credit cards directly into your website. Official PayPal Partner.
6
- Version: 1.1.45
7
Author: CodePeople
8
Author URI: https://wordpress.dwbooster.com/forms/payment-form-for-paypal-pro
9
License: GPL
@@ -130,6 +130,7 @@ if ( is_admin() ) {
130
add_action('media_buttons', 'set_cp_ppp_insert_button', 100);
131
add_action('admin_enqueue_scripts', 'set_cp_ppp_insert_adminScripts', 1);
132
add_action('admin_menu', 'cp_ppp_admin_menu');
133
134
$plugin = plugin_basename(__FILE__);
135
add_filter("plugin_action_links_".$plugin, 'cp_ppp_customAdjustmentsLink');
@@ -148,6 +149,21 @@ if ( is_admin() ) {
148
add_shortcode( 'CP_PPP_LIST', 'cp_ppp_filter_list' );
149
}
150
151
152
// functions
153
//------------------------------------------
@@ -435,6 +451,55 @@ function cp_ppp_available_templates(){
435
return $CP_CFPP_global_templates;
436
}
437
438
function cp_ppp_filter_content($atts) {
439
global $wpdb;
440
extract( shortcode_atts( array(
3
Plugin Name: Payment Form for PayPal Pro
4
Plugin URI: https://wordpress.dwbooster.com/forms/paypal-payment-pro-form
5
Description: Payment Form for PayPal Pro to accept credit cards directly into your website. Official PayPal Partner.
6
+ Version: 1.1.46
7
Author: CodePeople
8
Author URI: https://wordpress.dwbooster.com/forms/payment-form-for-paypal-pro
9
License: GPL
130
add_action('media_buttons', 'set_cp_ppp_insert_button', 100);
131
add_action('admin_enqueue_scripts', 'set_cp_ppp_insert_adminScripts', 1);
132
add_action('admin_menu', 'cp_ppp_admin_menu');
133
+ add_action('enqueue_block_editor_assets', 'cp_ppp_gutenberg_block' );
134
135
$plugin = plugin_basename(__FILE__);
136
add_filter("plugin_action_links_".$plugin, 'cp_ppp_customAdjustmentsLink');
149
add_shortcode( 'CP_PPP_LIST', 'cp_ppp_filter_list' );
150
}
151
152
+ // register gutemberg block
153
+ if (function_exists('register_block_type'))
154
+ {
155
+ register_block_type('cpcfwpppro/form-rendering', array(
156
+ 'attributes' => array(
157
+ 'formId' => array(
158
+ 'type' => 'string'
159
+ ),
160
+ 'instanceId' => array(
161
+ 'type' => 'string'
162
+ ),
163
+ ),
164
+ 'render_callback' => 'cp_ppp_render_form_admin'
165
+ ));
166
+ }
167
168
// functions
169
//------------------------------------------
451
return $CP_CFPP_global_templates;
452
}
453
454
+
455
+ function cp_ppp_gutenberg_block() {
456
+ global $wpdb;
457
+
458
+ wp_enqueue_script( 'cpcfwpp_gutenberg_editor', plugins_url('/js/block.js', __FILE__));
459
+
460
+ wp_enqueue_style('cfwpppro-publicstyle', plugins_url('css/stylepublic.css', __FILE__));
461
+
462
+ wp_deregister_script('query-stringify');
463
+ wp_register_script('query-stringify', plugins_url('/js/jQuery.stringify.js', __FILE__));
464
+
465
+ wp_deregister_script('cp_ppp_validate_script');
466
+ wp_register_script('cp_ppp_validate_script', plugins_url('/js/jquery.validate.js', __FILE__));
467
+
468
+ wp_enqueue_script( 'cp_ppp_buikder_script',
469
+ get_site_url( get_current_blog_id() ).'?cp_ppp_resources=public',array("jquery","jquery-ui-core","jquery-ui-datepicker","jquery-ui-widget","jquery-ui-position","jquery-ui-tooltip","query-stringify","cp_ppp_validate_script"), false, true );
470
+
471
+ $forms = array();
472
+ $rows = $wpdb->get_results("SELECT id,form_name FROM ".$wpdb->prefix.CP_PPP_FORMS_TABLE." ORDER BY form_name");
473
+ foreach ($rows as $item)
474
+ $forms[] = array (
475
+ 'value' => $item->id,
476
+ 'label' => $item->form_name,
477
+ );
478
+
479
+ wp_localize_script( 'cpcfwpp_gutenberg_editor', 'cpcfwpppro_forms', array(
480
+ 'forms' => $forms,
481
+ 'siteUrl' => get_site_url()
482
+ ) );
483
+ }
484
+
485
+
486
+ function cp_ppp_render_form_admin ($atts) {
487
+ $is_gutemberg_editor = defined( 'REST_REQUEST' ) && REST_REQUEST && ! empty( $_REQUEST['context'] ) && 'edit' === $_REQUEST['context'];
488
+ if (!$is_gutemberg_editor)
489
+ return cp_ppp_filter_content (array('id' => $atts["formId"]));
490
+ else if ($atts["formId"])
491
+ {
492
+ ob_start();
493
+ @include_once dirname( __FILE__ ) . '/cp_ppp_paypal_pro_int.inc.php';
494
+ $buffer = ob_get_contents();
495
+ ob_end_clean();
496
+ return '<input type="hidden" name="form_structure'.$atts["instanceId"].'" id="form_structure'.$atts["instanceId"].'" value="'.esc_attr(cp_ppp_get_option('form_structure', CP_PPP_DEFAULT_form_structure, $atts["formId"])).'" /><fieldset class="ahbgutenberg_editor" disabled><div id="fbuilder"><div id="fbuilder_'.$atts["instanceId"].'"><div id="formheader_'.$atts["instanceId"].'"></div><div id="fieldlist_'.$atts["instanceId"].'"></div></div></div>'.$buffer.'</fieldset>';
497
+ }
498
+ else
499
+ return '';
500
+ }
501
+
502
+
503
function cp_ppp_filter_content($atts) {
504
global $wpdb;
505
extract( shortcode_atts( array(
images/cp_form.gif CHANGED
Binary file
js/block.js ADDED
@@ -0,0 +1,119 @@
1
+ jQuery(function()
2
+ {
3
+ (function( blocks, element ) {
4
+ var el = wp.element.createElement,
5
+ source = blocks.source,
6
+ InspectorControls = wp.editor.InspectorControls,
7
+ category = {slug:'payment-form-for-paypal-prol', title : 'Payment Form for PayPal Pro'};
8
+
9
+ var _wp$components = wp.components,
10
+ SelectControl = _wp$components.SelectControl,
11
+ ServerSideRender = _wp$components.ServerSideRender;
12
+
13
+ /* Plugin Category */
14
+ blocks.getCategories().push({slug: 'cpcfwpppro', title: 'Payment Form for PayPal Pro'}) ;
15
+
16
+
17
+ /* ICONS */
18
+ const iconcpcfwpppro = el('img', { width: 20, height: 20, src: "data:image/gif;base64,R0lGODlhFAARAJEAAP8AJAAA////AAAAACwAAAAAFAARAAACOYyPqcLt3wycTwqFA7OU8g5lYgJ62nUwANCsLLqlwtrS8MTSOmDJ8/t79Ti2YIwC/EVOpQqzuRyJCgA7" } );
19
+
20
+ /* Form's shortcode */
21
+ blocks.registerBlockType( 'cpcfwpppro/form-rendering', {
22
+ title: 'Payment Form for PayPal Pro',
23
+ icon: iconcpcfwpppro,
24
+ category: 'cpcfwpppro',
25
+ supports: {
26
+ customClassName: false,
27
+ className: false
28
+ },
29
+ attributes: {
30
+ formId: {
31
+ type: 'string'
32
+ },
33
+ instanceId: {
34
+ type: 'string'
35
+ }
36
+ },
37
+ edit: function( { attributes, className, isSelected, setAttributes } ) {
38
+ const formOptions = cpcfwpppro_forms.forms;
39
+ if (!formOptions.length)
40
+ return el("div", null, 'Please create a payment form first.' );
41
+ var iId = attributes.instanceId;
42
+ if (!iId)
43
+ {
44
+ iId = formOptions[0].value+parseInt(Math.random()*100000);
45
+ setAttributes({instanceId: iId });
46
+ }
47
+ if (!attributes.formId)
48
+ setAttributes({formId: formOptions[0].value });
49
+ cpcfwpppro_renderForm(iId);
50
+ var focus = isSelected;
51
+ return [
52
+ !!focus && el(
53
+ InspectorControls,
54
+ {
55
+ key: 'cpcfwpppro_inspector'
56
+ },
57
+ [
58
+ el(
59
+ 'span',
60
+ {
61
+ key: 'cpcfwpppro_inspector_help',
62
+ style:{fontStyle: 'italic'}
63
+ },
64
+ 'If you need help: '
65
+ ),
66
+ el(
67
+ 'a',
68
+ {
69
+ key : 'cpcfwpppro_inspector_help_link',
70
+ href : 'https://cfpaypal.dwbooster.com/contact-us',
71
+ target : '_blank'
72
+ },
73
+ 'CLICK HERE'
74
+ )
75
+ ]
76
+ ),
77
+ el(SelectControl, {
78
+ value: attributes.formId,
79
+ options: formOptions,
80
+ onChange: function(evt){
81
+ setAttributes({formId: evt});
82
+ iId = evt+parseInt(Math.random()*100000);
83
+ setAttributes({instanceId: iId });
84
+ cpcfwpppro_renderForm(iId);
85
+ },
86
+ }),
87
+ el(ServerSideRender, {
88
+ block: "cpcfwpppro/form-rendering",
89
+ attributes: attributes
90
+ })
91
+ ];
92
+ },
93
+
94
+ save: function( props ) {
95
+ return null;
96
+ }
97
+ });
98
+
99
+ } )(
100
+ window.wp.blocks,
101
+ window.wp.element
102
+ );
103
+ }
104
+ );
105
+ function cpcfwpppro_renderForm(id) {
106
+ if ($("#form_structure"+id).length)
107
+ {
108
+ try
109
+ {
110
+ var cp_appbooking_fbuilder_myconfig = {"obj":"{\"pub\":true,\"identifier\":\"_"+id+"\",\"messages\": {}}"};
111
+ var f = $("#fbuilder_"+id).fbuilder($.parseJSON(cp_appbooking_fbuilder_myconfig.obj));
112
+ f.fBuild.loadData("form_structure"+id);
113
+ } catch (e) { setTimeout ('cpcfwpppro_renderForm('+id+')',250);}
114
+ }
115
+ else
116
+ {
117
+ setTimeout ('cpcfwpppro_renderForm('+id+')',50);
118
+ }
119
+ }