You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.3 KiB

<?php
defined( 'ABSPATH' ) || die;
/**
* The button field. Simply displays a HTML button which might be used for JavaScript actions.
*/
class RWMB_Button_Field extends RWMB_Field {
/**
* Get field HTML.
*
* @param mixed $meta Meta value.
* @param array $field The field parameters.
* @return string
*/
public static function html( $meta, $field ) {
$attributes = self::get_attributes( $field );
return sprintf( '<button %s>%s</button>', self::render_attributes( $attributes ), $field['std'] );
}
/**
* Normalize parameters for field.
*
* @param array $field The field parameters.
* @return array
*/
public static function normalize( $field ) {
$field = wp_parse_args( $field, [
'std' => __( 'Click me', 'meta-box' ),
] );
$field = parent::normalize( $field );
return $field;
}
/**
* Get the attributes for a field.
*
* @param array $field The field parameters.
* @param mixed $value The attribute value.
* @return array
*/
public static function get_attributes( $field, $value = null ) {
$attributes = parent::get_attributes( $field, $value );
$attributes = wp_parse_args( $attributes, [
'type' => $field['type'],
] );
$attributes['class'] .= ' button hide-if-no-js';
return $attributes;
}
}