How to Adjust Renewal Prices When Using Default Expire

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPrint this page

When using the Default Expire feature in WP Software License for WooCommerce, you may want to adjust the renewal price for licenses. This can be achieved in two different ways, depending on whether you prefer manual control or automation.

Manual adjustment – Each order that generates a license can be updated directly from the WooCommerce admin area. Simply open the order, locate the license details, and change the Renewal Price field. This allows you to set a custom amount for specific customers or orders without affecting others.

Automatic adjustment with custom code – For larger stores or recurring scenarios, the renewal price can be modified programmatically. By adding a small custom snippet, you can set new default renewal pricing rules that apply globally to all future orders. This approach ensures consistency, saves time, and reduces human error.


    include_once( 'wp-load.php' );
    
    $UpdateRenewalPriceForProductID     =   '745';
    $UpdateRenewalPriceForVariationD    =   '0';
    $UpdateLicenseGroupID               =   '0';
    $NewUpdatePrice                     =   '3.20';
    
    
    global $wpdb;
                                                
    $mysql_query    =   $wpdb->prepare ( "SELECT
                                            woi1.order_item_id
                                        FROM
                                            " . $wpdb->prefix . "woocommerce_order_itemmeta AS woi1
                                        JOIN " . $wpdb->prefix . "woocommerce_order_itemmeta AS woi2
                                        ON
                                            woi1.order_item_id = woi2.order_item_id
                                        WHERE
                                            woi1.meta_key = '_product_id' AND woi1.meta_value = %s AND woi2.meta_key = '_variation_id' AND woi2.meta_value = %s
                                        GROUP BY
                                            woi1.order_item_id", $UpdateRenewalPriceForProductID, $UpdateRenewalPriceForVariationD );
                                                
    $results        =   $wpdb->get_results( $mysql_query );
    
    if ( ! $results )
        wp_die ( "No records founds" );
        
    foreach ( $results  as  $result )
        {
            $_woo_sl    =   wc_get_order_item_meta( $result->order_item_id, '_woo_sl', TRUE );
            
            if ( ! is_array ( $_woo_sl )    ||  ! isset ( $_woo_sl['product_expire_renew_price'] )  || ! isset ( $_woo_sl['product_expire_renew_price'][ $UpdateLicenseGroupID ] ) )
                continue;
                
            //Update the price    
            $_woo_sl['product_expire_renew_price'][ $UpdateLicenseGroupID ] =   $NewUpdatePrice;
            
            wc_update_order_item_meta ( $result->order_item_id, '_woo_sl', $_woo_sl );
        }
        
    echo "Renewal prices updated";

Both methods give you full flexibility over license renewal pricing while using Default Expire.


By woocommerce-sl, posted on September 22, 2025

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments