Skip to content

Instantly share code, notes, and snippets.

View jrick1229's full-sized avatar
☠️

Joey Ricketts jrick1229

☠️
  • VA
  • 04:04 (UTC -04:00)
View GitHub Profile
@jrick1229
jrick1229 / eg_my_custom_retry_rules.php
Last active November 29, 2018 17:16
Immediately 'Cancel' the subscription after the fifth payment retry
<?php
function eg_my_custom_retry_rules( $default_retry_rules_array ) {
return array(
array(
'retry_after_interval' => 3 * DAY_IN_SECONDS,
'email_template_customer' => '',
'email_template_admin' => 'WCS_Email_Payment_Retry',
'status_to_apply_to_order' => 'pending',
'status_to_apply_to_subscription' => 'on-hold',
<?php
/**
* Function to redirect the customer to a custom 'thank you' page after placing an order
**/
add_action( 'template_redirect', 'woo_custom_redirect_after_purchase' );
function woo_custom_redirect_after_purchase() {
global $wp;
if ( is_checkout() && !empty( $wp->query_vars['order-received'] ) ) {
wp_redirect( ' http://localhost:8888/subscriptions/custom-thank-you-page/' );
@jrick1229
jrick1229 / renewal_choice_type_cart.php
Last active November 29, 2018 17:17
renewal_choice_type_cart
<?php
function renewal_choice_type_cart() {
?>
<div class="renewal-cart-choice-field">
<label for="renewal-cart-choice">Renewal method:</label>
<select id="renewal-cart-choice" name="renewal-cart-choice">
<option value="auto">Automatic Renewal</option>
<option value="manual">Manual Renewal</option>
</select>
@jrick1229
jrick1229 / wcs_change_billing_details_string.php
Last active November 29, 2018 17:17
Change 'Billing Details' title in checkout to be 'Account Info' when cart total is equal to ZERO
<?php
function wcs_free_checkout_fields() {
// Bail we're not at checkout, or if we're at checkout but payment is needed
if ( function_exists( 'is_checkout' ) && ( ! is_checkout() || ( is_checkout() && WC()->cart->needs_payment() ) ) ) {
return;
}
// Change string here
@jrick1229
jrick1229 / eg_extend_subscription_expiration_options.php
Last active November 29, 2018 17:18
Extend the expiration options for subscriptions
<?php
function eg_extend_subscription_expiration_options( $subscription_lengths ) {
$subscription_lengths['year'][10] = wcs_get_subscription_period_strings( 10, 'year' );
$subscription_lengths['year'][20] = wcs_get_subscription_period_strings( 20, 'year' );
$subscription_lengths['month'][48] = wcs_get_subscription_period_strings( 48, 'month' );
return $subscription_lengths;
}
add_filter( 'woocommerce_subscription_lengths', 'eg_extend_subscription_expiration_options' );
@jrick1229
jrick1229 / wcs_do_not_reduce_renewal_stock.php
Last active November 29, 2018 17:18
Don't reduce stock on renewal - Subscriptions
<?php
function wcs_do_not_reduce_renewal_stock( $reduce_stock, $order ) {
if ( function_exists( 'wcs_order_contains_renewal' ) && wcs_order_contains_renewal( $order ) ) { // Subscriptions v2.0+
$reduce_stock = false;
} elseif ( class_exists( 'WC_Subscriptions_Renewal_Order' ) && WC_Subscriptions_Renewal_Order::is_renewal( $order ) ) {
$reduce_stock = false;
}
return $reduce_stock;
}
@jrick1229
jrick1229 / remove_subscriptions_tab.php
Last active November 29, 2018 17:18
Disable 'Subscriptions' reports tab
<?php
add_filter( 'woocommerce_admin_reports', 'remove_subscriptions_tab', 13, 1 );
function remove_subscriptions_tab( $reports ) {
// unset the subscriptions tab
unset($reports['subscriptions']);
return $reports;
}
@jrick1229
jrick1229 / wcs_disable_report_cache_update.php
Last active November 29, 2018 17:18
Disable 'Reports' cache updates for higher volume sites (Subscriptions)
<?php
function wcs_disable_report_cache_update() {
$cached_report_classes = array(
'WC_Report_Subscription_Events_By_Date',
'WC_Report_Upcoming_Recurring_Revenue',
'WC_Report_Subscription_By_Product',
'WC_Report_Subscription_By_Customer',
);
foreach ( $cached_report_classes as $report_class ) {
@jrick1229
jrick1229 / wcopc_do_not_empty_cart.php
Last active November 29, 2018 17:19
OPC - Don't empty cart when using 'product-list' template
<?php
add_filter( 'wcopc_not_empty_cart', '__return_true', 100 );
@jrick1229
jrick1229 / wcs_add_change_payment_button_to_subscriptions_page.php
Last active November 29, 2018 17:19
Add a 'Change payment' button to the Subscriptions page in the My Account area
<?php
function wcs_add_change_payment_button_to_subscriptions_page($subscription) {
$actions = wcs_get_all_user_actions_for_subscription( $subscription, get_current_user_id() );
if(!empty($actions)){
foreach ( $actions as $key => $action ){
if(strtolower($action['name']) == "change payment"){
$changePaymentLink = esc_url( $action['url'] );
echo "<a href='$changePaymentLink' class='button change_payment_method'>".$action['name']."</a>";
}