LLMS_Rest_Admin_Settings_Webhooks::get_fields()
Get settings fields for the Keys tab.
Return Return
(array)
Source Source
File: libraries/lifterlms-rest/includes/admin/class-llms-rest-admin-settings-webhooks.php
public static function get_fields() { require_once 'tables/class-llms-rest-table-webhooks.php'; $add_hook = '1' === llms_filter_input( INPUT_GET, 'add-webhook', FILTER_SANITIZE_NUMBER_INT ); $hook_id = llms_filter_input( INPUT_GET, 'edit-webhook', FILTER_SANITIZE_NUMBER_INT ); $settings = array(); $settings[] = array( 'class' => 'top', 'id' => 'rest_hooks_options_start', 'type' => 'sectionstart', ); $settings[] = array( 'title' => $hook_id || $add_hook ? __( 'Webhook Details', 'lifterlms' ) : __( 'Webhooks', 'lifterlms' ), 'type' => 'title-with-html', 'id' => 'rest_hooks_options_title', 'html' => $hook_id || $add_hook ? '' : '<a href="' . esc_url( admin_url( 'admin.php?page=llms-settings&tab=rest-api§ion=webhooks&add-webhook=1' ) ) . '" class="llms-button-primary small" type="submit" style="top:-2px;">' . __( 'Add Webhook', 'lifterlms' ) . '</a>', ); if ( $add_hook || $hook_id ) { $hook = $add_hook ? false : LLMS_REST_API()->webhooks()->get( $hook_id ); if ( $add_hook || $hook->exists() ) { add_action( 'admin_print_footer_scripts', array( __CLASS__, 'output_scripts' ) ); $user_id = $hook ? $hook->get( 'user_id' ) : get_current_user_id(); $settings[] = array( 'title' => __( 'Name', 'lifterlms' ), 'desc' => '<br>' . __( 'A friendly, human-readable, name used to identify the webhook.', 'lifterlms' ), 'id' => 'llms_rest_webhook_name', 'type' => 'text', 'css' => 'width:480px', 'value' => $hook ? $hook->get( 'name' ) : '', ); $settings[] = array( 'title' => __( 'Status', 'lifterlms' ), 'id' => 'llms_rest_webhook_status', 'type' => 'select', 'options' => LLMS_REST_API()->webhooks()->get_statuses(), 'value' => $hook ? $hook->get( 'status' ) : '', ); $topic = ''; if ( $hook && 'action' === $hook->get_resource() ) { $topic = 'action'; } elseif ( $hook ) { $topic = $hook->get( 'topic' ); } $settings[] = array( 'title' => __( 'Topic', 'lifterlms' ), 'id' => 'llms_rest_webhook_topic', 'type' => 'select', 'class' => 'llms-select2', 'options' => LLMS_REST_API()->webhooks()->get_topics(), 'value' => $topic, ); $settings[] = array( 'title' => __( 'Action', 'lifterlms' ), 'id' => 'llms_rest_webhook_action', 'desc' => '<br>' . __( 'Any registered WordPress, plugin, or theme action hook.', 'lifterlms' ), 'type' => 'text', 'value' => $hook ? $hook->get_event() : '', ); $settings[] = array( 'title' => __( 'Delivery URL', 'lifterlms' ), 'id' => 'llms_rest_webhook_delivery_url', 'desc' => '<br>' . __( 'URL where the webhook payload will be delivered.', 'lifterlms' ), 'type' => 'text', 'css' => 'width:480px', 'class' => 'code widefat', 'value' => $hook ? $hook->get( 'delivery_url' ) : '', 'custom_attributes' => array( 'required' => 'required', ), ); $settings[] = array( 'title' => __( 'Secret Key', 'lifterlms' ), 'id' => 'llms_rest_webhook_secret', 'desc' => '<br>' . __( 'The secret key can be used to verify received payloads originated from this website.', 'lifterlms' ), 'type' => 'text', 'css' => 'width:480px', 'class' => 'code widefat', 'value' => $hook ? $hook->get( 'secret' ) : '', ); $buttons = '<br><br><button class="llms-button-primary" type="submit" value="llms-rest-save-webhook">' . __( 'Save', 'lifterlms' ) . '</button>'; if ( $hook ) { $buttons .= $buttons ? ' ' : '<br><br>'; $buttons .= '<a class="llms-button-danger" href="' . esc_url( $hook->get_delete_link() ) . '">' . __( 'Delete', 'lifterlms' ) . '</a>'; } $buttons .= wp_nonce_field( 'lifterlms-settings', '_wpnonce', true, false ); $settings[] = array( 'type' => 'custom-html', 'id' => 'llms_rest_webhook_buttons', 'value' => $buttons, ); $settings[] = array( 'type' => 'hidden', 'id' => 'llms_rest_webhook_id', 'value' => $hook ? $hook->get( 'id' ) : '', ); $settings[] = array( 'type' => 'hidden', 'id' => 'llms_rest_webhook_nonce', 'value' => wp_create_nonce( 'create-update-webhook' ), ); } else { $settings[] = array( 'id' => 'rest_hooks_options_invalid_error', 'type' => 'custom-html', 'value' => __( 'Invalid webhook.', 'lifterlms' ), ); } } else { $settings[] = array( 'id' => 'llms_webhooks_table', 'table' => new LLMS_REST_Table_Webhooks(), 'type' => 'table', ); } $settings[] = array( 'id' => 'rest_hooks_options_end', 'type' => 'sectionend', ); return $settings; }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
1.0.0-beta.1 | Introduced. |