isset( $saved['lang'] ) ? (string) $saved['lang'] : '', 'height' => isset( $saved['height'] ) ? max( 300, min( 4000, absint( $saved['height'] ) ) ) : 760, 'view' => isset( $saved['view'] ) && 'file' === $saved['view'] ? 'file' : 'page', 'autoheight' => isset( $saved['autoheight'] ) ? (bool) $saved['autoheight'] : true, 'credit' => ! empty( $saved['credit'] ), 'affiliate_code' => isset( $saved['affiliate_code'] ) && preg_match( '/^[a-z2-9]{8}$/', $saved['affiliate_code'] ) ? $saved['affiliate_code'] : '', ); } /** * Languages the catalog has templates in. * * @return array */ function layers_doc_embed_languages() { return array( '' => __( 'All languages', 'layers-doc-embed' ), 'en' => 'English', 'es' => 'Español', 'fr' => 'Français', 'pt' => 'Português', 'it' => 'Italiano', 'de' => 'Deutsch', 'nl' => 'Nederlands', 'pl' => 'Polski', 'cs' => 'Čeština', 'sk' => 'Slovenčina', 'hu' => 'Magyar', 'ro' => 'Română', 'hr' => 'Hrvatski', 'sr' => 'Srpski', 'da' => 'Dansk', 'el' => 'Ελληνικά', 'tr' => 'Türkçe', 'ar' => 'العربية', 'he' => 'עברית', 'ru' => 'Русский', 'kk' => 'Қазақша', 'ky' => 'Кыргызча', 'uz' => 'Oʻzbekcha', 'id' => 'Bahasa Indonesia', 'vi' => 'Tiếng Việt', 'ja' => '日本語', 'ko' => '한국어', 'zh-hant' => '繁體中文', ); } add_action( 'admin_menu', 'layers_doc_embed_admin_menu' ); add_action( 'admin_init', 'layers_doc_embed_register_settings' ); add_filter( 'plugin_action_links_' . plugin_basename( LAYERS_DOC_EMBED_FILE ), 'layers_doc_embed_action_links' ); /** * Adds the settings page. */ function layers_doc_embed_admin_menu() { add_options_page( __( 'Fillable Documents', 'layers-doc-embed' ), __( 'Fillable Documents', 'layers-doc-embed' ), 'manage_options', 'layers-doc-embed', 'layers_doc_embed_settings_page' ); } /** * Settings link on the Plugins screen. * * @param array $links Existing links. * @return array */ function layers_doc_embed_action_links( $links ) { $url = admin_url( 'options-general.php?page=layers-doc-embed' ); array_unshift( $links, '' . esc_html__( 'Settings', 'layers-doc-embed' ) . '' ); return $links; } /** * Registers the option with a sanitizer. */ function layers_doc_embed_register_settings() { register_setting( 'layers_doc_embed', LAYERS_DOC_EMBED_OPTION, array( 'type' => 'array', 'sanitize_callback' => 'layers_doc_embed_sanitize', 'default' => array(), ) ); } /** * Sanitizes the settings form. * * @param mixed $input Raw form values. * @return array */ function layers_doc_embed_sanitize( $input ) { $input = is_array( $input ) ? $input : array(); $lang = isset( $input['lang'] ) ? sanitize_key( $input['lang'] ) : ''; $code = isset( $input['affiliate_code'] ) ? strtolower( trim( sanitize_text_field( $input['affiliate_code'] ) ) ) : ''; return array( 'lang' => array_key_exists( $lang, layers_doc_embed_languages() ) ? $lang : '', 'height' => isset( $input['height'] ) ? max( 300, min( 4000, absint( $input['height'] ) ) ) : 760, 'view' => isset( $input['view'] ) && 'file' === $input['view'] ? 'file' : 'page', 'autoheight' => ! empty( $input['autoheight'] ), 'credit' => ! empty( $input['credit'] ), 'affiliate_code' => preg_match( '/^[a-z2-9]{8}$/', $code ) ? $code : '', ); } /** * Renders the settings page. */ function layers_doc_embed_settings_page() { if ( ! current_user_can( 'manage_options' ) ) { return; } $o = layers_doc_embed_options(); $name = LAYERS_DOC_EMBED_OPTION; ?>

[layers-doc slug="affidavit-of-loss"]. layers.md/embed' ); ?>