apply_filters( 'learndash_payment_closed_button', string $custom_button, array $payment_params )
Filters the closed course payment button markup.
Description #
Parameters #
- $custom_button
-
(string) Payment button markup for closed course.
- $payment_params
-
(array) An array of payment parameter details.
Source #
Examples #
Note: Extended code example below not guaranteed, you may need to consult with a developer
<?php
/**
* Example usage for learndash_payment_closed_button filter.
*/
add_filter(
'learndash_payment_closed_button',
function( $custom_button = '', $payment_params = array() ) {
// Comma separated list of course ids to change the button. Leave empty array for all courses.
$course_ids = array( 4514 ); // Example array(123, 45, 67).
// Replacement button text.
$course_button_label = 'This is my Course button';
/**
* If the $courses_ids is not empty and does not match the post ID passed via
* $payment_params['post'] then abort since this is not one of the courses we want to affect.
*/
if ( ( ! empty( $course_ids ) ) && ( ! in_array( $payment_params['post']->ID, $course_ids ) ) ) {
return $custom_button;
}
/**
* Now if we are satisfied all the requirements are there, we parse the $custom_button
* HTML and extract the button label.
*/
preg_match_all( '/<a .*?>(.*?)</a>/', $custom_button, $matches );
/**
* The preg_match_all() function will populate the $matches array. This array will have 2 nodes.
* Node [0] will contain the original HTML matching $custom_button.
* Node [1] will contain the displayed button text.
*
* [0] => Array (
* [0] => <a class="btn-join" href="http://www.site.com" id="btn-join">Take this Course</a>
* )
* [1] => Array (
* [0] => Take this Course
* )
*/
if ( ( is_array( $matches ) ) && ( isset( $matches[1] ) ) && ( ! empty( $matches[1] ) ) ) {
// Finally we replace the button label in the $custom_button HTML.
$custom_button = str_replace( $matches[1][0], $course_button_label, $custom_button );
}
// Always return $custom_button.
return $custom_button;
},
30,
2
);
Changelog #
| Version | Description |
|---|---|
| 2.1.0 | Introduced. |