Skip to content

Instantly share code, notes, and snippets.

View j2machado's full-sized avatar
💻
Creating Cool Stuff

Juan José Machado j2machado

💻
Creating Cool Stuff
View GitHub Profile
@j2machado
j2machado / ld-bypass-linear-progression-for-courses.php
Last active July 18, 2025 15:13
LearnDash LMS - Bypass the linear progression for courses.
<?php
/**
* Bypass the linear progression for courses in LearnDash LMS,
* leveraging the learndash_course_progression_enabled filter.
*
* @param bool $setting. The $setting value in the database. True for Linear Progression, False for Free Form.
* @param int $course_id. The course ID.
*
* @return bool.
*/
@j2machado
j2machado / functions.php
Last active July 17, 2025 17:30
LearnDash LMS - Change the Great Job! You've completed this lesson - Keep it going! message.
<?php
/**
* Change the Great Job! You've completed this %s - Keep it going!" message
* for any custom message of your choice using the learndash_alert_message filter.
*
* @param string $message. The message to be filtered.
* @param string $type. The type of message.
* @param string $icon. The message icon.
*
* @return string $message. The filtered message.
@j2machado
j2machado / ld-show-the-login-form-first-on-page-load.php
Last active May 5, 2025 13:35
Show the Login Form first in the LearnDash Registration form
<?php
/*
* Show the Login Form first on the Registration page.
*/
add_action( 'wp_footer', function () {
// Get the LearnDash registration page ID.
$ld_registration_page_id = learndash_registration_page_get_id();
// Exit if user is already logged in or not on the registration page.
@j2machado
j2machado / debug_learndash_quiz_certificates.php
Last active July 17, 2025 17:30
Debug LearnDash Quiz Certificates
<?php
/**
* Debug LearnDash Quiz Certificates.
*
* Enter the Quiz ID and User ID into the [debug_learndash_quiz_certificate] shortcode.
* If the user has earned the certificate for the quiz, the shortcode will return
* the Certificate Download link.
*
* Clicking the link should open the generated certificate PDF according to the
* certificate settings in the quiz.
@j2machado
j2machado / delivery-off-on-cart-total-25-or-less.php
Last active July 17, 2025 17:31
CheckoutWC Local Pickup - Disable Delivery (shipping) from the Delivery Method selection when the cart total is 25 or less.
<?php
/*
* Turn off Delivery (shipping option) in CheckoutWC's Local Pickup,
* if the WooCommerce cart total is less or equal than 25.
*
* @param bool $disable. Whether to disable Delivery or not.
* @return bool. The filtered value.
*/
add_filter( 'cfw_local_pickup_disable_shipping_option', function( $disable ) {
@j2machado
j2machado / hide-shipping-from-delivery-methods-basesd-on-product-category.php
Last active July 17, 2025 17:31
In CheckoutWC's Delivery method, hide the Shipping option completely when at least one product in the cart is assigned to a specific category.
<?php
/*
* In CheckoutWC's Delivery method, hide the Shipping option completely when at least
* one product in the cart is assigned to a specific category.
*
* @author Obi Juan <hola@obijuan.dev>
* @link https://obijuan.dev
*/
/*
@j2machado
j2machado / functions.php
Last active May 3, 2022 17:57
LearnDash - In a course with Closed Access Mode, redirect the unenrolled users to the Button URL value, e.g. a WooCommerce Product or a Landing Page to purchase the course
<?php
/* In LearnDash, prevent unenrolled users from reaching
the single course page and redirect them to the Button URL value */
/* TO DO
* - Add support for groups
* - Add an option in LearnDash settings to turn on/off.
* - Add support for externa URLs as well (Unbounce, Click Funnels, etc).
*/
@webmasterninjay
webmasterninjay / downloader.php
Created September 26, 2019 14:33
Simple PHP script to download file from url
<html>
<form method="post">
<input name="url" size="50" />
<input name="submit" type="submit" />
</form>
<?php
// maximum execution time in seconds
set_time_limit (24 * 60 * 60);
if (!isset($_POST['submit'])) die();
@mattclements
mattclements / function.php
Last active November 28, 2025 02:46
Wordpress Disable Comments (add to function.php)
<?php
add_action('admin_init', function () {
// Redirect any user trying to access comments page
global $pagenow;
if ($pagenow === 'edit-comments.php') {
wp_redirect(admin_url());
exit;
}
@webmasterninjay
webmasterninjay / functions.php
Created July 10, 2015 14:41
Woocommerce - Redirect after payment
<?php
/* Redirect user after check out */
add_action( 'template_redirect', 'jay_custom_redirect_after_purchase' );
function jay_custom_redirect_after_purchase() {
global $wp;
if ( is_checkout() && ! empty( $wp->query_vars['order-received'] ) ) {
wp_redirect( 'http://www.yoururl.com/your-page/' );
exit;