Kit > Wishlist.
*
* @package ConvertKit
* @author ConvertKit
*/
class ConvertKit_Wishlist_Admin_Section extends ConvertKit_Admin_Section_Base {
/**
* Constructor.
*
* @since 1.9.6
*/
public function __construct() {
// Define the class that reads/writes settings.
$this->settings = new ConvertKit_Wishlist_Settings();
// Define the settings key.
$this->settings_key = $this->settings::SETTINGS_NAME;
// Define the programmatic name, Title and Tab Text.
$this->name = 'wishlist-member';
$this->title = __( 'WishList Member Integration Settings', 'convertkit' );
$this->tab_text = __( 'WishList Member', 'convertkit' );
// Define settings sections.
$this->settings_sections = array(
'general' => array(
'title' => $this->title,
'callback' => array( $this, 'print_section_info' ),
'wrap' => false,
),
);
parent::__construct();
}
/**
* Prints help info for this section.
*
* @since 1.9.6
*/
public function print_section_info() {
?>
:
:
:
:
:
:
render_container_start();
do_settings_sections( $this->settings_key );
// Get WishList Member Levels.
$wlm_levels = $this->get_wlm_levels();
// Bail with an error if no WishList Member Levels exist.
if ( ! $wlm_levels ) {
$this->output_error( __( 'No WishList Member Levels exist in the WishList Member Plugin.', 'convertkit' ) );
$this->render_container_end();
return;
}
// Setup WP_List_Table.
$table = new ConvertKit_WP_List_Table();
$table->add_column( 'title', __( 'WishList Membership Level', 'convertkit' ), true );
$table->add_column( 'add', __( 'Assign to member', 'convertkit' ), false );
$table->add_column( 'remove', __( 'Remove from member', 'convertkit' ), false );
// Iterate through WishList Member Levels, building table array.
$table_rows = array();
foreach ( $wlm_levels as $wlm_level ) {
$table_rows[] = array(
'title' => $wlm_level['name'],
'add' => convertkit_get_subscription_dropdown_field(
'_wp_convertkit_integration_wishlistmember_settings[' . $wlm_level['id'] . '_add]',
(string) $this->settings->get_convertkit_add_setting_by_wishlist_member_level_id( $wlm_level['id'] ),
'_wp_convertkit_integration_wishlistmember_settings_' . $wlm_level['id'] . '_add',
'widefat',
'wlm'
),
'remove' => convertkit_get_subscription_dropdown_field(
'_wp_convertkit_integration_wishlistmember_settings[' . $wlm_level['id'] . '_remove]',
(string) $this->settings->get_convertkit_remove_setting_by_wishlist_member_level_id( $wlm_level['id'] ),
'_wp_convertkit_integration_wishlistmember_settings_' . $wlm_level['id'] . '_remove',
'widefat',
'wlm',
array(
'unsubscribe' => __( 'Unsubscribe', 'convertkit' ),
)
),
);
}
// Sort table rows.
$table_rows = $table->reorder( $table_rows );
// Set items.
$table->add_items( $table_rows );
$table->set_total_items( count( $table_rows ) );
// Prepare and display WP_List_Table.
$table->prepare_items();
$table->display();
// Register settings field.
settings_fields( $this->settings_key );
// Render closing container.
$this->render_container_end();
// Render submit button.
submit_button();
}
/**
* Gets membership levels from WishList Member API
*
* @return bool|array
*/
public function get_wlm_levels() {
// Get WishList Member Levels from the API.
$wlm_get_levels = wlmapi_get_levels();
// Bail if the API call failed.
if ( $wlm_get_levels['success'] !== 1 ) {
return false;
}
return $wlm_get_levels['levels']['level'];
}
}
// Register Admin Settings section.
add_filter(
'convertkit_admin_settings_register_sections',
/**
* Register WishList Member as a section at Settings > Kit.
*
* @param array $sections Settings Sections.
* @return array
*/
function ( $sections ) {
// Bail if WishList Member isn't enabled.
if ( ! function_exists( 'wlmapi_get_levels' ) ) {
return $sections;
}
// Register this class as a section at Settings > Kit.
$sections['wishlist-member'] = new ConvertKit_Wishlist_Admin_Section();
return $sections;
}
);