AdSense Plugin WP QUADS - Version 2.0.3

Version Description

  • New: Add Contact bubble in the Options panel.
  • New: Doubleclick (Google Ad Manager) Integration
  • Fix: error notification.
Download this release

Release Info

Developer wpquads
Plugin Icon 128x128 AdSense Plugin WP QUADS
Version 2.0.3
Comparing to
See all releases

Code changes from version 2.0.2 to 2.0.3

admin/assets/js/dist/adminscript.js CHANGED
@@ -10259,6 +10259,17 @@ var QuadsAdCreateRouter = /*#__PURE__*/function (_Component) {
10259
 
10260
  break;
10261
 
 
 
 
 
 
 
 
 
 
 
 
10262
  default:
10263
  break;
10264
  }
@@ -10343,6 +10354,17 @@ var QuadsAdCreateRouter = /*#__PURE__*/function (_Component) {
10343
 
10344
  break;
10345
 
 
 
 
 
 
 
 
 
 
 
 
10346
  default:
10347
  break;
10348
  }
@@ -10418,6 +10440,8 @@ var QuadsAdCreateRouter = /*#__PURE__*/function (_Component) {
10418
  adsense_type: '',
10419
  g_data_ad_width: '',
10420
  g_data_ad_height: '',
 
 
10421
  code: '',
10422
  align: 3,
10423
  adlabel: '',
@@ -55829,6 +55853,64 @@ var QuadsAdConfigFields = /*#__PURE__*/function (_Component) {
55829
  }, "Add")))))) : ''));
55830
  break;
55831
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55832
  default:
55833
  comp_html.push( /*#__PURE__*/_react["default"].createElement("div", {
55834
  key: "noads"
@@ -103642,6 +103724,11 @@ var QuadsAdList = /*#__PURE__*/function (_Component) {
103642
  type = "random ads";
103643
  break;
103644
 
 
 
 
 
 
103645
  default:
103646
  break;
103647
  }
@@ -104104,6 +104191,10 @@ var AdTypeSelectorNavLink = /*#__PURE__*/function (_Component) {
104104
  img_url = quads_localize_data.quads_plugin_url + 'admin/assets/js/src/images/random_ads.png';
104105
  break;
104106
 
 
 
 
 
104107
  default:
104108
  break;
104109
  }
@@ -104127,6 +104218,9 @@ var AdTypeSelectorNavLink = /*#__PURE__*/function (_Component) {
104127
  All_ad_network: [{
104128
  ad_type: 'adsense',
104129
  ad_type_name: 'AdSense'
 
 
 
104130
  }, {
104131
  ad_type: 'plain_text',
104132
  ad_type_name: 'Plain Text / HTML / JS'
10259
 
10260
  break;
10261
 
10262
+ case 'double_click':
10263
+ if (quads_post_meta.ad_unit_name && quads_post_meta.network_code && quads_post_meta.position && quads_post_meta.visibility_include.length > 0) {
10264
+ _this.saveAdFormData('publish');
10265
+ } else {
10266
+ _this.setState({
10267
+ show_form_error: true
10268
+ });
10269
+ }
10270
+
10271
+ break;
10272
+
10273
  default:
10274
  break;
10275
  }
10354
 
10355
  break;
10356
 
10357
+ case 'double_click':
10358
+ if (quads_post_meta.ad_unit_name && quads_post_meta.network_code) {
10359
+ _this.props.history.push(new_url);
10360
+ } else {
10361
+ _this.setState({
10362
+ show_form_error: true
10363
+ });
10364
+ }
10365
+
10366
+ break;
10367
+
10368
  default:
10369
  break;
10370
  }
10440
  adsense_type: '',
10441
  g_data_ad_width: '',
10442
  g_data_ad_height: '',
10443
+ network_code: '',
10444
+ ad_unit_name: '',
10445
  code: '',
10446
  align: 3,
10447
  adlabel: '',
55853
  }, "Add")))))) : ''));
55854
  break;
55855
 
55856
+ case 'double_click':
55857
+ ad_type_name = 'Google AD Manager (DFP)';
55858
+ comp_html.push( /*#__PURE__*/_react["default"].createElement("div", {
55859
+ key: "double_click"
55860
+ }, /*#__PURE__*/_react["default"].createElement("table", null, /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("label", null, __('Network Code', 'quick-adsense-reloaded'))), /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("input", {
55861
+ className: show_form_error && post_meta.network_code == '' ? 'quads_form_error' : '',
55862
+ value: post_meta.network_code,
55863
+ onChange: this.props.adFormChangeHandler,
55864
+ type: "text",
55865
+ id: "network_code",
55866
+ name: "network_code",
55867
+ placeholder: "Network Code"
55868
+ }), show_form_error && post_meta.network_code == '' ? /*#__PURE__*/_react["default"].createElement("div", {
55869
+ className: "quads_form_msg"
55870
+ }, /*#__PURE__*/_react["default"].createElement("span", {
55871
+ className: "material-icons"
55872
+ }, "error_outline"), "Enter Network Code") : '')), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("label", null, __('AD Unit Name', 'quick-adsense-reloaded'))), /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("input", {
55873
+ className: show_form_error && post_meta.ad_unit_name == '' ? 'quads_form_error' : '',
55874
+ value: post_meta.ad_unit_name,
55875
+ onChange: this.props.adFormChangeHandler,
55876
+ type: "text",
55877
+ placeholder: "AD Unit Name",
55878
+ id: "ad_unit_name",
55879
+ name: "ad_unit_name"
55880
+ }), show_form_error && post_meta.ad_unit_name == '' ? /*#__PURE__*/_react["default"].createElement("div", {
55881
+ className: "quads_form_msg"
55882
+ }, /*#__PURE__*/_react["default"].createElement("span", {
55883
+ className: "material-icons"
55884
+ }, "error_outline"), "Enter AD Unit Name") : '')), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("label", null, __('Size', 'quick-adsense-reloaded'))), /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("select", {
55885
+ value: post_meta.adsense_type,
55886
+ onChange: this.props.adFormChangeHandler,
55887
+ name: "adsense_type",
55888
+ id: "adsense_type"
55889
+ }, /*#__PURE__*/_react["default"].createElement("option", {
55890
+ value: "normal"
55891
+ }, __('Fixed Size', 'quick-adsense-reloaded')), /*#__PURE__*/_react["default"].createElement("option", {
55892
+ value: "responsive"
55893
+ }, __('Responsive', 'quick-adsense-reloaded'))), post_meta.adsense_type !== 'responsive' ? /*#__PURE__*/_react["default"].createElement("div", {
55894
+ className: "quads-adsense-width-heigth"
55895
+ }, /*#__PURE__*/_react["default"].createElement("div", {
55896
+ className: "quads-adsense-width"
55897
+ }, /*#__PURE__*/_react["default"].createElement("label", null, __('Width', 'quick-adsense-reloaded'), /*#__PURE__*/_react["default"].createElement("input", {
55898
+ value: post_meta.g_data_ad_width ? post_meta.g_data_ad_width : '300',
55899
+ onChange: this.props.adFormChangeHandler,
55900
+ type: "number",
55901
+ id: "g_data_ad_width",
55902
+ name: "g_data_ad_width"
55903
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
55904
+ className: "quads-adsense-height"
55905
+ }, /*#__PURE__*/_react["default"].createElement("label", null, __('Height', 'quick-adsense-reloaded'), /*#__PURE__*/_react["default"].createElement("input", {
55906
+ value: post_meta.g_data_ad_height ? post_meta.g_data_ad_height : '250',
55907
+ onChange: this.props.adFormChangeHandler,
55908
+ type: "number",
55909
+ id: "g_data_ad_height",
55910
+ name: "g_data_ad_height"
55911
+ })))) : '')))))));
55912
+ break;
55913
+
55914
  default:
55915
  comp_html.push( /*#__PURE__*/_react["default"].createElement("div", {
55916
  key: "noads"
103724
  type = "random ads";
103725
  break;
103726
 
103727
+ case 'double_click':
103728
+ img_url = quads_localize_data.quads_plugin_url + 'admin/assets/js/src/images/double_click_icon.png';
103729
+ type = "Google Ad Manager";
103730
+ break;
103731
+
103732
  default:
103733
  break;
103734
  }
104191
  img_url = quads_localize_data.quads_plugin_url + 'admin/assets/js/src/images/random_ads.png';
104192
  break;
104193
 
104194
+ case 'double_click':
104195
+ img_url = quads_localize_data.quads_plugin_url + 'admin/assets/js/src/images/double_click.png';
104196
+ break;
104197
+
104198
  default:
104199
  break;
104200
  }
104218
  All_ad_network: [{
104219
  ad_type: 'adsense',
104220
  ad_type_name: 'AdSense'
104221
+ }, {
104222
+ ad_type: 'double_click',
104223
+ ad_type_name: 'Google Ad Manager'
104224
  }, {
104225
  ad_type: 'plain_text',
104226
  ad_type_name: 'Plain Text / HTML / JS'
admin/assets/js/src/components/ads/ad-create-router/QuadsAdCreateRouter.jsx CHANGED
@@ -57,12 +57,14 @@ class QuadsAdCreateRouter extends Component {
57
  targeting_exclude : [],
58
  ad_id : '',
59
  ad_type : '',
60
- label : '',
61
  g_data_ad_slot : '',
62
  g_data_ad_client : '',
63
  adsense_type : '',
64
  g_data_ad_width : '',
65
- g_data_ad_height : '',
 
 
66
  code : '',
67
  align : 3,
68
  adlabel : '',
@@ -400,6 +402,14 @@ class QuadsAdCreateRouter extends Component {
400
  }
401
 
402
  break;
 
 
 
 
 
 
 
 
403
 
404
  default:
405
  break;
@@ -505,7 +515,13 @@ class QuadsAdCreateRouter extends Component {
505
  }else{
506
  this.setState({show_form_error:true});
507
  }
508
-
 
 
 
 
 
 
509
 
510
  break;
511
  default:
57
  targeting_exclude : [],
58
  ad_id : '',
59
  ad_type : '',
60
+ label : '',
61
  g_data_ad_slot : '',
62
  g_data_ad_client : '',
63
  adsense_type : '',
64
  g_data_ad_width : '',
65
+ g_data_ad_height : '',
66
+ network_code : '',
67
+ ad_unit_name : '',
68
  code : '',
69
  align : 3,
70
  adlabel : '',
402
  }
403
 
404
  break;
405
+ case 'double_click':
406
+ if(quads_post_meta.ad_unit_name && quads_post_meta.network_code && quads_post_meta.position && quads_post_meta.visibility_include.length > 0){
407
+ this.saveAdFormData('publish');
408
+ }else{
409
+ this.setState({show_form_error:true});
410
+ }
411
+
412
+ break;
413
 
414
  default:
415
  break;
515
  }else{
516
  this.setState({show_form_error:true});
517
  }
518
+ break;
519
+ case 'double_click':
520
+ if(quads_post_meta.ad_unit_name && quads_post_meta.network_code){
521
+ this.props.history.push(new_url);
522
+ }else{
523
+ this.setState({show_form_error:true});
524
+ }
525
 
526
  break;
527
  default:
admin/assets/js/src/components/ads/ad-list/QuadsAdList.jsx CHANGED
@@ -49,6 +49,10 @@ class QuadsAdList extends Component {
49
  img_url = quads_localize_data.quads_plugin_url+'admin/assets/js/src/images/random_ad_icon.png';
50
  type = "random ads";
51
  break;
 
 
 
 
52
 
53
  default:
54
  break;
49
  img_url = quads_localize_data.quads_plugin_url+'admin/assets/js/src/images/random_ad_icon.png';
50
  type = "random ads";
51
  break;
52
+ case 'double_click':
53
+ img_url = quads_localize_data.quads_plugin_url+'admin/assets/js/src/images/double_click_icon.png';
54
+ type = "Google Ad Manager";
55
+ break;
56
 
57
  default:
58
  break;
admin/assets/js/src/components/ads/ad-type-selector-nav/AdTypeSelectorNavLink.jsx CHANGED
@@ -15,8 +15,10 @@ class AdTypeSelectorNavLink extends Component {
15
  ],
16
  All_ad_network: [
17
  {ad_type:'adsense',ad_type_name:'AdSense'},
 
18
  {ad_type:'plain_text',ad_type_name:'Plain Text / HTML / JS'},
19
- {ad_type:'random_ads',ad_type_name:'Random Ads'},
 
20
  ]
21
  };
22
  }
@@ -35,6 +37,9 @@ class AdTypeSelectorNavLink extends Component {
35
  case 'random_ads':
36
  img_url = quads_localize_data.quads_plugin_url+'admin/assets/js/src/images/random_ads.png';
37
  break;
 
 
 
38
 
39
  default:
40
  break;
15
  ],
16
  All_ad_network: [
17
  {ad_type:'adsense',ad_type_name:'AdSense'},
18
+ {ad_type:'double_click',ad_type_name:'Google Ad Manager'},
19
  {ad_type:'plain_text',ad_type_name:'Plain Text / HTML / JS'},
20
+ {ad_type:'random_ads',ad_type_name:'Random Ads'},
21
+
22
  ]
23
  };
24
  }
37
  case 'random_ads':
38
  img_url = quads_localize_data.quads_plugin_url+'admin/assets/js/src/images/random_ads.png';
39
  break;
40
+ case 'double_click':
41
+ img_url = quads_localize_data.quads_plugin_url+'admin/assets/js/src/images/double_click.png';
42
+ break;
43
 
44
  default:
45
  break;
admin/assets/js/src/components/ads/config-fields/QuadsAdConfigFields.jsx CHANGED
@@ -223,6 +223,50 @@ error_outline
223
  : ''}
224
  </div>);
225
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
226
 
227
  default:
228
  comp_html.push(<div key="noads" >{__('Ad not found', 'quick-adsense-reloaded')}</div>);
223
  : ''}
224
  </div>);
225
  break;
226
+ case 'double_click':
227
+ ad_type_name = 'Google AD Manager (DFP)';
228
+ comp_html.push(<div key="double_click">
229
+ <table>
230
+ <tbody>
231
+ <tr><td>
232
+ <label>{__('Network Code', 'quick-adsense-reloaded')}</label></td><td><input className={(show_form_error && post_meta.network_code == '') ? 'quads_form_error' : ''} value={post_meta.network_code} onChange={this.props.adFormChangeHandler} type="text" id="network_code" name="network_code" placeholder="Network Code" />
233
+ {(show_form_error && post_meta.network_code == '') ? <div className="quads_form_msg"><span className="material-icons">
234
+ error_outline</span>Enter Network Code</div> :''}
235
+ </td></tr>
236
+ <tr><td><label>{__('AD Unit Name', 'quick-adsense-reloaded')}</label></td><td><input className={(show_form_error && post_meta.ad_unit_name == '') ? 'quads_form_error' : ''} value={post_meta.ad_unit_name} onChange={this.props.adFormChangeHandler} type="text" placeholder="AD Unit Name" id="ad_unit_name" name="ad_unit_name" />
237
+ {(show_form_error && post_meta.ad_unit_name == '') ? <div className="quads_form_msg"><span className="material-icons">
238
+ error_outline
239
+ </span>Enter AD Unit Name</div> :''}</td></tr>
240
+ <tr><td><label>{__('Size', 'quick-adsense-reloaded')}</label></td><td>
241
+ <div>
242
+ <select value={post_meta.adsense_type} onChange={this.props.adFormChangeHandler} name="adsense_type" id="adsense_type">
243
+ <option value="normal">{__('Fixed Size', 'quick-adsense-reloaded')}</option>
244
+ <option value="responsive">{__('Responsive', 'quick-adsense-reloaded')}</option>
245
+ </select>
246
+ {
247
+ post_meta.adsense_type !== 'responsive' ?
248
+ <div className="quads-adsense-width-heigth">
249
+
250
+ <div className="quads-adsense-width">
251
+ <label>{__('Width', 'quick-adsense-reloaded')}
252
+ <input value={post_meta.g_data_ad_width ? post_meta.g_data_ad_width:'300'} onChange={this.props.adFormChangeHandler} type="number" id="g_data_ad_width" name="g_data_ad_width" />
253
+ </label>
254
+ </div>
255
+ <div className="quads-adsense-height">
256
+ <label>{__('Height', 'quick-adsense-reloaded')}
257
+ <input value={post_meta.g_data_ad_height ? post_meta.g_data_ad_height:'250'} onChange={this.props.adFormChangeHandler} type="number" id="g_data_ad_height" name="g_data_ad_height" />
258
+ </label>
259
+ </div>
260
+ </div>
261
+ : ''
262
+ }
263
+ </div>
264
+ </td></tr>
265
+ </tbody>
266
+ </table>
267
+ </div>);
268
+
269
+ break;
270
 
271
  default:
272
  comp_html.push(<div key="noads" >{__('Ad not found', 'quick-adsense-reloaded')}</div>);
admin/assets/js/src/images/double_click.png ADDED
Binary file
admin/assets/js/src/images/double_click_icon.png ADDED
Binary file
admin/includes/rest-api.php CHANGED
@@ -137,8 +137,29 @@ class QUADS_Ad_Setup_Api {
137
  return current_user_can( 'manage_options' );
138
  }
139
  ));
 
 
 
 
 
 
 
140
 
141
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
 
143
  public function changeMode($request){
144
 
137
  return current_user_can( 'manage_options' );
138
  }
139
  ));
140
+ register_rest_route( 'quads-route', 'quads_subscribe_newsletter', array(
141
+ 'methods' => 'POST',
142
+ 'callback' => array($this, 'quadsSubscribeNewsletter'),
143
+ 'permission_callback' => function(){
144
+ return current_user_can( 'manage_options' );
145
+ }
146
+ ));
147
 
148
  }
149
+ public function quadsSubscribeNewsletter($request){
150
+ $parameters = $request->get_params();
151
+ $api_url = 'http://magazine3.company/wp-json/api/central/email/subscribe';
152
+ $api_params = array(
153
+ 'name' => sanitize_text_field($parameters['name']),
154
+ 'email'=> sanitize_text_field($parameters['email']),
155
+ 'website'=> sanitize_text_field($parameters['website']),
156
+ 'type'=> 'quads'
157
+ );
158
+ $response = wp_remote_post( $api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
159
+ $response = wp_remote_retrieve_body( $response );
160
+ echo $response;
161
+ die;
162
+ }
163
 
164
  public function changeMode($request){
165
 
admin/includes/setup.php CHANGED
@@ -23,7 +23,6 @@ class QUADS_Ad_Setup {
23
  public function quadsAdSetupHooks(){
24
 
25
  add_action( 'init', array($this, 'quadsAdminInit'));
26
- add_action( 'upgrader_process_complete', array($this, 'quadsUpgradeToNewDesign') ,10, 2);
27
  add_action( 'wp_ajax_quads_sync_ads_in_new_design', array($this, 'quadsSyncAdsInNewDesign') );
28
  add_action( 'wp_ajax_quads_sync_random_ads_in_new_design', array($this, 'quadsSyncRandomAdsInNewDesign') );
29
 
23
  public function quadsAdSetupHooks(){
24
 
25
  add_action( 'init', array($this, 'quadsAdminInit'));
 
26
  add_action( 'wp_ajax_quads_sync_ads_in_new_design', array($this, 'quadsSyncAdsInNewDesign') );
27
  add_action( 'wp_ajax_quads_sync_random_ads_in_new_design', array($this, 'quadsSyncRandomAdsInNewDesign') );
28
 
assets/css/quads-admin-all.css CHANGED
@@ -150,4 +150,12 @@
150
  .nav-tab {
151
  padding: 10px 15px !important;
152
  }
153
-
 
 
 
 
 
 
 
 
150
  .nav-tab {
151
  padding: 10px 15px !important;
152
  }
153
+ .quads-help-container {
154
+ display: flex;
155
+ align-items: center;
156
+ justify-content: center;
157
+ position: fixed;
158
+ z-index: 9999;
159
+ bottom: 0px;
160
+ right: 0pc;
161
+ }
assets/js/quads-newsletter.js CHANGED
@@ -9,12 +9,12 @@ jQuery(document).ready(function ($) {
9
  content += '.wp-pointer-content .button-secondary{ left: -25px;background: transparent;top: 5px; border: 0;position: relative; padding: 0; box-shadow: none;margin: 0;color: #0085ba;} .wp-pointer-content .button-primary{ display:none} #afw_mc_embed_signup{background:#fff; clear:left; font:14px Helvetica,Arial,sans-serif; }';
10
  content += '</style>';
11
  content += '<div id="afw_mc_embed_signup">';
12
- content += '<form class="ml-block-form" action="//app.mailerlite.com/webforms/submit/k6b7m4" data-id="258182" data-code="k6b7m4" method="POST" target="_blank">';
13
  content += '<div id="afw_mc_embed_signup_scroll">';
14
  content += '<div class="afw-mc-field-group" style=" margin-left: 15px; width: 195px; float: left;">';
15
- content += '<input type="text" name="fields[name]" class="form-control" placeholder="Name" hidden value="'+quadsnewsletter.current_user_name+'" style="display:none">';
16
- content += '<input type="text" value="'+quadsnewsletter.current_user_email+'" name="fields[email]" class="form-control" placeholder="Email*" style=" width: 180px; padding: 6px 5px;">';
17
- content += '<input type="text" name="fields[company]" class="form-control" placeholder="Website" hidden style=" display:none; width: 168px; padding: 6px 5px;" value="'+quadsnewsletter.path+'">';
18
  content += '<input type="hidden" name="ml-submit" value="1" />';
19
  content += '</div>';
20
  content += '<div id="mce-responses">';
@@ -68,6 +68,24 @@ jQuery(document).ready(function ($) {
68
  setup ();
69
  }
70
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  });
72
 
73
 
9
  content += '.wp-pointer-content .button-secondary{ left: -25px;background: transparent;top: 5px; border: 0;position: relative; padding: 0; box-shadow: none;margin: 0;color: #0085ba;} .wp-pointer-content .button-primary{ display:none} #afw_mc_embed_signup{background:#fff; clear:left; font:14px Helvetica,Arial,sans-serif; }';
10
  content += '</style>';
11
  content += '<div id="afw_mc_embed_signup">';
12
+ content += '<form class="ml-block-form" id="quads-subscribe-newsletter-form" method="POST" target="_blank">';
13
  content += '<div id="afw_mc_embed_signup_scroll">';
14
  content += '<div class="afw-mc-field-group" style=" margin-left: 15px; width: 195px; float: left;">';
15
+ content += '<input type="text" name="name" class="form-control" placeholder="Name" hidden value="'+quadsnewsletter.current_user_name+'" style="display:none">';
16
+ content += '<input type="text" value="'+quadsnewsletter.current_user_email+'" name="email" class="form-control" placeholder="Email*" style=" width: 180px; padding: 6px 5px;">';
17
+ content += '<input type="text" name="company" class="form-control" placeholder="Website" hidden style=" display:none; width: 168px; padding: 6px 5px;" value="'+quadsnewsletter.path+'">';
18
  content += '<input type="hidden" name="ml-submit" value="1" />';
19
  content += '</div>';
20
  content += '<div id="mce-responses">';
68
  setup ();
69
  }
70
  }
71
+ $("#quads-subscribe-newsletter-form").on('submit',function(e){
72
+ e.preventDefault();
73
+ var $form = $("#quads-subscribe-newsletter-form");
74
+ var name = $form.find('input[name="name"]').val();
75
+ var email = $form.find('input[name="email"]').val();
76
+ var website = $form.find('input[name="company"]').val();
77
+ $.ajax({
78
+ url:quads_localize_data.rest_url + "quads-route/quads_subscribe_newsletter",
79
+ type:"POST",
80
+ headers: {
81
+ 'Accept': 'application/json',
82
+ 'Content-Type': 'application/json',
83
+ 'X-WP-Nonce': quads_localize_data.nonce,
84
+ },
85
+ data:JSON.stringify({ name:name, email:email,website:website }),
86
+ })
87
+
88
+ });
89
  });
90
 
91
 
includes/render-ad-functions.php CHANGED
@@ -48,10 +48,93 @@ function quads_render_ad( $id, $string, $widget = false,$ampsupport='' ) {
48
  if( true === quads_is_adsense( $id, $string ) ) {
49
  return apply_filters( 'quads_render_ad', quads_render_google_async( $id ) );
50
  }
 
 
 
51
 
52
  // Return empty string
53
  return '';
54
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
 
56
  /**
57
  * Render Google async ad
@@ -392,6 +475,21 @@ function quads_is_adsense( $id, $string ) {
392
  }
393
  return false;
394
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
395
 
396
 
397
  /**
@@ -439,8 +537,18 @@ function quads_render_amp($id,$ampsupport=''){
439
  if (!empty($quads_options['ads'][$id]['amp_code'])){
440
  $html = $quads_options['ads'][$id]['amp_code'];
441
  } else {
442
- // Return default adsense code
443
- $html = '<amp-ad layout="responsive" width=300 height=250 type="adsense" data-ad-client="'. $quads_options['ads'][$id]['g_data_ad_client'] . '" data-ad-slot="'.$quads_options['ads'][$id]['g_data_ad_slot'].'"></amp-ad>';
 
 
 
 
 
 
 
 
 
 
444
  }
445
 
446
  return $html;
48
  if( true === quads_is_adsense( $id, $string ) ) {
49
  return apply_filters( 'quads_render_ad', quads_render_google_async( $id ) );
50
  }
51
+ if( true === quads_is_double_click( $id, $string ) ) {
52
+ return apply_filters( 'quads_render_ad', quads_render_double_click_async( $id ) );
53
+ }
54
 
55
  // Return empty string
56
  return '';
57
  }
58
+ function quads_doubleclick_head_code(){
59
+
60
+ $data_slot = '';
61
+ require_once QUADS_PLUGIN_DIR . '/admin/includes/rest-api-service.php';
62
+ $api_service = new QUADS_Ad_Setup_Api_Service();
63
+ $quads_ads = $api_service->getAdDataByParam('quads-ads');
64
+
65
+ if(isset($quads_ads['posts_data'])){
66
+
67
+ foreach($quads_ads['posts_data'] as $key => $value){
68
+ if($value['post']['post_status']== 'draft'){
69
+ continue;
70
+ }
71
+ $ads =$value['post_meta'];
72
+ if(isset($ads['random_ads_list']))
73
+ $ads['random_ads_list'] = unserialize($ads['random_ads_list']);
74
+ if(isset($ads['visibility_include']))
75
+ $ads['visibility_include'] = unserialize($ads['visibility_include']);
76
+ if(isset($ads['visibility_exclude']))
77
+ $ads['visibility_exclude'] = unserialize($ads['visibility_exclude']);
78
+
79
+ if(isset($ads['targeting_include']))
80
+ $ads['targeting_include'] = unserialize($ads['targeting_include']);
81
+
82
+ if(isset($ads['targeting_exclude']))
83
+ $ads['targeting_exclude'] = unserialize($ads['targeting_exclude']);
84
+ $is_on =quads_is_visibility_on($ads);
85
+ if(!$is_on){
86
+ continue;
87
+ }
88
+ if($ads['ad_type']== 'double_click'){
89
+ $network_code = $ads['network_code'];
90
+ $ad_unit_name = $ads['ad_unit_name'];
91
+
92
+ $width = (isset($ads['g_data_ad_width']) && !empty($ads['g_data_ad_width'])) ? $ads['g_data_ad_width'] : '300';
93
+ $height = (isset($ads['g_data_ad_height']) && !empty($ads['g_data_ad_height'])) ? $ads['g_data_ad_height'] : '250';
94
+ $data_slot .="googletag.defineSlot('/".esc_attr($network_code)."/".esc_attr($ad_unit_name)."/', [".esc_attr($width).", ".esc_attr($height)."], 'wp_quads_dfp_".esc_attr($ads['ad_id'])."')
95
+ .addService(googletag.pubads());";
96
+ }
97
+
98
+ }
99
+ if( $data_slot !=''){
100
+
101
+ echo "<script async src='https://securepubads.g.doubleclick.net/tag/js/gpt.js'></script>
102
+ <script>
103
+ window.googletag = window.googletag || {cmd: []};
104
+ googletag.cmd.push(function() {
105
+ ".$data_slot."
106
+ googletag.pubads().enableSingleRequest();
107
+ googletag.enableServices();
108
+ });
109
+ </script>";
110
+
111
+ }
112
+
113
+ }
114
+
115
+ }
116
+ /**
117
+ * Render Google async ad
118
+ *
119
+ * @global array $quads_options
120
+ * @param int $id
121
+ * @return html
122
+ */
123
+ function quads_render_double_click_async( $id ) {
124
+ global $quads_options;
125
+ $width = (isset($quads_options['ads'][$id]['g_data_ad_width']) && !empty($quads_options['ads'][$id]['g_data_ad_width'])) ? $quads_options['ads'][$id]['g_data_ad_width'] : '300';
126
+ $height = (isset($quads_options['ads'][$id]['g_data_ad_height']) && !empty($quads_options['ads'][$id]['g_data_ad_height'])) ? $quads_options['ads'][$id]['g_data_ad_height'] : '250';
127
+
128
+ $html = "\n <!-- " . QUADS_NAME . " v." . QUADS_VERSION . " Content Doubleclick async --> \n\n";
129
+ $html .= '<div id="wp_quads_dfp_'.esc_attr($quads_options['ads'][$id]['ad_id']). '" style="height:'.esc_attr($height). 'px; width:'.esc_attr($width). 'px;">
130
+ <script>
131
+ googletag.cmd.push(function() { googletag.display("wp_quads_dfp_'.esc_attr($quads_options['ads'][$id]['ad_id']).'"); });
132
+ </script>
133
+ </div>';
134
+ $html .= "\n <!-- end WP QUADS --> \n\n";
135
+ return apply_filters( 'quads_render_double_click_async', $html );
136
+ }
137
+
138
 
139
  /**
140
  * Render Google async ad
475
  }
476
  return false;
477
  }
478
+ /**
479
+ * Check if ad code is double click or other ad code
480
+ *
481
+ * @param1 id int id of the ad
482
+ * @param string $string ad code
483
+ * @return boolean
484
+ */
485
+ function quads_is_double_click( $id, $string ) {
486
+ global $quads_options;
487
+
488
+ if( isset($quads_options['ads'][$id]['ad_type']) && $quads_options['ads'][$id]['ad_type'] === 'double_click') {
489
+ return true;
490
+ }
491
+ return false;
492
+ }
493
 
494
 
495
  /**
537
  if (!empty($quads_options['ads'][$id]['amp_code'])){
538
  $html = $quads_options['ads'][$id]['amp_code'];
539
  } else {
540
+ if($quads_options['ads'][$id]['ad_type'] == 'double_click'){
541
+ $width = isset($quads_options['ads'][$id]['g_data_ad_width'])? $quads_options['ads'][$id]['g_data_ad_width'] : '300';
542
+ $height =isset($quads_options['ads'][$id]['g_data_ad_height'])? $quads_options['ads'][$id]['g_data_ad_height'] : '250';
543
+ $network_code = $quads_options['ads'][$id]['network_code'];
544
+ $ad_unit_name = $quads_options['ads'][$id]['ad_unit_name'];
545
+ // Return default Double click code
546
+ $html = '<amp-ad width='.esc_attr($width).' height='.esc_attr($width).' type="doubleclick" data-ad-slot="/'.esc_attr($network_code)."/".esc_attr($ad_unit_name). '/" data-multi-size="468x60,300x250"></amp-ad>';
547
+ }else{
548
+ // Return default adsense code
549
+ $html = '<amp-ad layout="responsive" width=300 height=250 type="adsense" data-ad-client="'. $quads_options['ads'][$id]['g_data_ad_client'] . '" data-ad-slot="'.$quads_options['ads'][$id]['g_data_ad_slot'].'"></amp-ad>';
550
+ }
551
+
552
  }
553
 
554
  return $html;
includes/scripts.php CHANGED
@@ -19,6 +19,22 @@ add_action( 'admin_enqueue_scripts', 'quads_load_admin_scripts', 100 );
19
  add_action( 'admin_enqueue_scripts', 'quads_load_plugins_admin_scripts', 100 );
20
  add_action( 'admin_enqueue_scripts', 'quads_load_all_admin_scripts', 100 );
21
  add_action( 'admin_print_footer_scripts', 'quads_check_ad_blocker' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
 
23
  /**
24
  * Create ad blocker admin script
@@ -80,7 +96,9 @@ if(is_object($screens)){
80
  wp_localize_script( 'quads-newsletter', 'quadsnewsletter', array(
81
  'current_user_email' => $current_user->user_email,
82
  'current_user_name' => $current_user->display_name,
83
- 'do_tour' => $do_tour
 
 
84
  ) );
85
  wp_enqueue_script('quads-newsletter');
86
  }
19
  add_action( 'admin_enqueue_scripts', 'quads_load_plugins_admin_scripts', 100 );
20
  add_action( 'admin_enqueue_scripts', 'quads_load_all_admin_scripts', 100 );
21
  add_action( 'admin_print_footer_scripts', 'quads_check_ad_blocker' );
22
+ add_action( 'admin_footer', 'quads_add_Beacon' );
23
+ function quads_add_Beacon(){
24
+ $screens = get_current_screen();
25
+ $currentScreen = '';
26
+ if(is_object($screens)){
27
+ $currentScreen = $screens->base;
28
+ if($currentScreen == 'toplevel_page_quads-settings'){
29
+ echo ' <div class="quads-help-container">
30
+ <script type="text/javascript">!function(e,t,n){function a(){var e=t.getElementsByTagName("script")[0],n=t.createElement("script");n.type="text/javascript",n.async=!0,n.src="https://beacon-v2.helpscout.net",e.parentNode.insertBefore(n,e)}if(e.Beacon=n=function(t,n,a){e.Beacon.readyQueue.push({method:t,options:n,data:a})},n.readyQueue=[],"complete"===t.readyState)return a();e.attachEvent?e.attachEvent("onload",a):e.addEventListener("load",a,!1)}(window,document,window.Beacon||function(){});</script>
31
+ <script type="text/javascript">window.Beacon("init", "200a7490-396b-4e3a-a28c-98d577fdf2f7")</script>
32
+ </div>';
33
+ }
34
+ }
35
+
36
+
37
+ }
38
 
39
  /**
40
  * Create ad blocker admin script
96
  wp_localize_script( 'quads-newsletter', 'quadsnewsletter', array(
97
  'current_user_email' => $current_user->user_email,
98
  'current_user_name' => $current_user->display_name,
99
+ 'do_tour' => $do_tour,
100
+ 'path' => get_site_url()
101
+
102
  ) );
103
  wp_enqueue_script('quads-newsletter');
104
  }
includes/template-functions.php CHANGED
@@ -17,6 +17,7 @@ add_filter('the_content', 'quads_post_settings_to_quicktags', 5);
17
  add_filter('the_content', 'quads_process_content', quads_get_load_priority());
18
  add_filter('rest_prepare_post', 'quads_classic_to_gutenberg', 10, 1);
19
  add_filter('the_content', 'quads_change_adsbygoogle_to_amp',11);
 
20
 
21
  /**
22
  * Show ads before posts
@@ -926,7 +927,8 @@ function quads_parse_random_quicktag_ads($content){
926
  shuffle($keys);
927
  $randomid = $random_ads_list_after[$keys[0]];
928
  $selected_ads[] = $randomid;
929
- $content = quads_replace_ads_new( $content, 'CusRnd' . $ad_id, $randomid,$ad_meta['enabled_on_amp'][0]);
 
930
  }
931
  return $content;
932
 
@@ -1066,11 +1068,12 @@ function quads_parse_default_ads_new( $content ) {
1066
  return $content;
1067
  }
1068
 
1069
- $number_rand_ads = substr_count( $content, '<!--CusRnd' );
1070
  for ( $i = 0; $i <= $number_rand_ads - 1; $i++ ) {
1071
  preg_match("#<!--CusAds(.+?)-->#si", $content, $match);
1072
  $ad_id = isset($match['1'])?$match['1']:'';
1073
  if( strpos( $content, '<!--CusAds' . $ad_id . '-->' ) !== false ) {
 
1074
  $content = quads_replace_ads_new( $content, 'CusAds' . $ad_id, $ad_id );
1075
  }
1076
  }
17
  add_filter('the_content', 'quads_process_content', quads_get_load_priority());
18
  add_filter('rest_prepare_post', 'quads_classic_to_gutenberg', 10, 1);
19
  add_filter('the_content', 'quads_change_adsbygoogle_to_amp',11);
20
+ add_action('wp_head', 'quads_doubleclick_head_code');
21
 
22
  /**
23
  * Show ads before posts
927
  shuffle($keys);
928
  $randomid = $random_ads_list_after[$keys[0]];
929
  $selected_ads[] = $randomid;
930
+ $enabled_on_amp = (isset($ad_meta['enabled_on_amp'][0]))? $ad_meta['enabled_on_amp'][0]: '';
931
+ $content = quads_replace_ads_new( $content, 'CusRnd' . $ad_id, $randomid,$enabled_on_amp);
932
  }
933
  return $content;
934
 
1068
  return $content;
1069
  }
1070
 
1071
+ $number_rand_ads = substr_count( $content, '<!--CusAds' );
1072
  for ( $i = 0; $i <= $number_rand_ads - 1; $i++ ) {
1073
  preg_match("#<!--CusAds(.+?)-->#si", $content, $match);
1074
  $ad_id = isset($match['1'])?$match['1']:'';
1075
  if( strpos( $content, '<!--CusAds' . $ad_id . '-->' ) !== false ) {
1076
+
1077
  $content = quads_replace_ads_new( $content, 'CusAds' . $ad_id, $ad_id );
1078
  }
1079
  }
package.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "quick-adsense-reloaded",
3
- "version": "2.0.2",
4
  "devDependencies": {
5
  "grunt": "~0.4.5",
6
  "grunt-contrib-clean": "~0.6.0",
1
  {
2
  "name": "quick-adsense-reloaded",
3
+ "version": "2.0.3",
4
  "devDependencies": {
5
  "grunt": "~0.4.5",
6
  "grunt-contrib-clean": "~0.6.0",
quick-adsense-reloaded.php CHANGED
@@ -6,7 +6,7 @@
6
  * Description: Insert Google AdSense and other ad formats fully automatic into your website
7
  * Author: WP Quads
8
  * Author URI: https://wordpress.org/plugins/quick-adsense-reloaded/
9
- * Version: 2.0.2
10
  * Text Domain: quick-adsense-reloaded
11
  * Domain Path: languages
12
  * Credits: WP QUADS - Quick AdSense Reloaded is a fork of Quick AdSense
@@ -38,7 +38,7 @@ if( !defined( 'ABSPATH' ) )
38
 
39
  // Plugin version
40
  if( !defined( 'QUADS_VERSION' ) ) {
41
- define( 'QUADS_VERSION', '2.0.2' );
42
  }
43
 
44
  // Plugin name
6
  * Description: Insert Google AdSense and other ad formats fully automatic into your website
7
  * Author: WP Quads
8
  * Author URI: https://wordpress.org/plugins/quick-adsense-reloaded/
9
+ * Version: 2.0.3
10
  * Text Domain: quick-adsense-reloaded
11
  * Domain Path: languages
12
  * Credits: WP QUADS - Quick AdSense Reloaded is a fork of Quick AdSense
38
 
39
  // Plugin version
40
  if( !defined( 'QUADS_VERSION' ) ) {
41
+ define( 'QUADS_VERSION', '2.0.3' );
42
  }
43
 
44
  // Plugin name
readme.txt CHANGED
@@ -10,7 +10,7 @@ Tags: adsense, ads, ad, google adsense, advertising, amp, ad injection, ad inser
10
  Requires at least: 3.6+
11
  Tested up to: 5.4
12
  Requires PHP: 5.3
13
- Stable tag: 2.0.2
14
 
15
  Ads & AdSense Plugin is the quickest way to insert Google AdSense & other ads into your website. Google AdSense integration with Google AMP support.
16
 
@@ -129,10 +129,16 @@ Alternative Installation:
129
 
130
 
131
  == Changelog ==
132
- = 2.0.1 =
 
 
 
 
 
133
  * New: Shortcode support in New interface.
134
  * New: Allow ads on AMP pages.
135
  * Fix: Fixed Tooltips are not working.
 
136
  = 2.0.1 =
137
  * New Random add module
138
 
10
  Requires at least: 3.6+
11
  Tested up to: 5.4
12
  Requires PHP: 5.3
13
+ Stable tag: 2.0.3
14
 
15
  Ads & AdSense Plugin is the quickest way to insert Google AdSense & other ads into your website. Google AdSense integration with Google AMP support.
16
 
129
 
130
 
131
  == Changelog ==
132
+ = 2.0.3 =
133
+ * New: Add Contact bubble in the Options panel.
134
+ * New: Doubleclick (Google Ad Manager) Integration
135
+ * Fix: error notification.
136
+
137
+ = 2.0.2 =
138
  * New: Shortcode support in New interface.
139
  * New: Allow ads on AMP pages.
140
  * Fix: Fixed Tooltips are not working.
141
+
142
  = 2.0.1 =
143
  * New Random add module
144