Skip to content

Instantly share code, notes, and snippets.

Avatar

Thomas Maier webzunft

View GitHub Profile
@webzunft
webzunft / check cURL version
Last active Jan 22, 2022
Check cURL version in EDD Software Licensing > activate_license
View check cURL version
if ( is_wp_error( $response ) ) {
$body = wp_remote_retrieve_body( $response );
if ( $body ) {
return $body;
} else {
$curl = curl_version();
return __( 'License couldn’t be activated. Please try again later.', 'advanced-ads' ) . " (cURL {$curl['version']})";
}
}
@webzunft
webzunft / canceled-subscriptions.sql
Last active Jul 29, 2022
SQL queries to analyse canceled subscriptions managed with EDD Recurring Payments
View canceled-subscriptions.sql
# Basic queries to analyse canceled subscriptions using EDD Recurring Payments pre EDD 3.0
# Use EXPLAIN if you have large stores since the "notes" column is not indexed and queries can take some time
# Some of these reports might be worth storing as Views and look at the graphs PHPMyAdmin can also create from them
# List subscription cancelation with creation and cancelation date, as well as the user who canceled
# good as a basis for further queries
SELECT ID,
created,
REGEXP_SUBSTR( REGEXP_SUBSTR( notes, '.* Status changed from active to cancelled .*' ), '^[a-z]+ [0-9]+, [0-9]+' ) AS 'date',
@webzunft
webzunft / fix-unclosed-query.php
Created Sep 25, 2020
Fixes an unclosed WP_Query() or query_posts() before Advanced Ads loads an ad
View fix-unclosed-query.php
/**
* Fix the "Current post is not identical to main post."
* and "Current query is not identical to main query." warnings in Advanced Ads
* caused by custom queries not using wp_reset_postdata() or wp_reset_query()
*
* @source https://wpadvancedads.com/manual/ad-debug-mode/
* @source https://developer.wordpress.org/reference/classes/wp_query/
* @source https://developer.wordpress.org/reference/functions/query_posts/
*
* Developers should not use this and rather add wp_reset_postdata() or wp_reset_query() to their code
@webzunft
webzunft / shortcodes.php
Last active Dec 10, 2019
Extend edd_aa_all_access() function in EDD All Access to work for multiple All Access passes
View shortcodes.php
<?php
/**
* Shortcode which can be used to easily give a user the option to log in or purchase an All Access Pass.
* If the user is already logged in but does not have a valid All Access Pass, they will see a buy button.
* If the user is both logged in and has a valid All Access Pass, they will be redirected to the page defined by the shortcode args.
* Can also be used to restrict content.
*
* @since 1.0.0
* @param array $atts Shortcode attributes
* @param string $content
@webzunft
webzunft / helper-functions.php
Last active Dec 10, 2019
Suggestion for improved edd_all_access_user_has_pass() in EDD All Access
View helper-functions.php
<?php
/**
* Check if a specific customer has a valid, specific All Access Pass.
*
* @since 1.0.0
* @param int - The ID of the user
* @param mixed - The ID of the All Access product, separate multiple IDs using comma
* @param mixed - The price_id (price variation) of the All Access product, separate multiple IDs using comma, leave empty for all price IDs
* @param string - The status of the pass we want to check if the user has.
* @return object/int - The All Access Pass if it exists or false if not.
View geo-targeting.php
<div style="min-width: 300px; height: auto; padding: 10px; background: #fff; color: #333; text-align: center; border: solid 1px #ddd;">
<p>Your location:</p>
<?php
if( class_exists( 'Advanced_Ads_Geo_Api' ) ) :
$api = Advanced_Ads_Geo_Api::get_instance();
$ip = $api->get_real_IP_address();
$error = false;
$my_country = '';
$my_country_isoCode = '';
$my_city = '';
@webzunft
webzunft / advanced-ads-company-category.php
Last active Mar 5, 2019
Add a company taxonomy to ads managed by the Advanced Ads plugin.
View advanced-ads-company-category.php
<?php
/**
* Advanced AdsCompany Category
*
* @wordpress-plugin
* Plugin Name: Advanced AdsCompany Category
* Plugin URI: https://wpadvancedads.com
* Description: Add a Company category to ads so that you can group them.
* Version: 0.1
* Author: Thomas Maier
@webzunft
webzunft / css
Created Sep 17, 2018
Reserve ad space with a ratio
View css
/** this code allows to reserve ad space with a ratio, e.g., when width is 100% and height needs to be adjusted dynamically
https://www.w3schools.com/howto/howto_css_aspect_ratio.asp
"top-banner-ads" is the class of the main container, in Advanced Ads derived from the placement name
**/
.top-banner-ads {
width: 100%;
height: auto;
padding-top: 12.4%; /* 728:90 ratio */
position: relative;
}
@webzunft
webzunft / functions.php
Created Feb 18, 2014
Sample code for an adblocker check based on BlockAlyzer for WordPress
View functions.php
function adblock_alert(){
?><script type="text/javascript">
jQuery(document).ready(function($) {
setTimeout(function(){
if ( ba_blocked == true ) alert("You are using adblock.");
},200)
});
</script><?php
}
add_action('wp_footer', 'adblock_alert');
@webzunft
webzunft / body section
Created Jan 29, 2014
asynchronous Google DFP for Publishers Tag code with explanations
View body section
<!-- the id must match the id defined in the slot -->
<!-- style attribut is optional, but useful to prevent to shift layout after ad is loaded -->
<div id="banner1" style="width:300px; height:250px;">
<script type="text/javascript">
// id 'banner1' is used here, again
googletag.cmd.push(function() { googletag.display('banner1'); });
</script>
</div>