X7ROOT File Manager
Current Path:
/home/iptvzxij/public_html/wp-content/plugins/wpgetapi/includes
home
/
iptvzxij
/
public_html
/
wp-content
/
plugins
/
wpgetapi
/
includes
/
📁
..
📁
block-editor
📄
class-wpgetapi-admin-options.php
(48.23 KB)
📄
class-wpgetapi-api-enqueues.php
(1.95 KB)
📄
class-wpgetapi-api.php
(33.6 KB)
📄
class-wpgetapi-encryption.php
(3.25 KB)
📄
class-wpgetapi-license-handler.php
(3.42 KB)
📄
class-wpgetapi-notices.php
(5.03 KB)
📄
class-wpgetapi-parameter-field.php
(5.37 KB)
📄
functions.php
(4.73 KB)
📄
index.php
(0 B)
Editing: class-wpgetapi-parameter-field.php
<?php if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Handles custom field typea. */ class WpGetApi_Parameter_Field extends CMB2_Type_Base { public static function init_parameter() { add_filter( 'cmb2_render_class_parameter', array( __CLASS__, 'class_name' ) ); add_filter( 'cmb2_sanitize_parameter', array( __CLASS__, 'maybe_save_split_values' ), 12, 4 ); /** * The following snippets are required for allowing the users field * to work as a repeatable field, or in a repeatable group */ add_filter( 'cmb2_sanitize_parameter', array( __CLASS__, 'sanitize' ), 10, 5 ); add_filter( 'cmb2_types_esc_parameter', array( __CLASS__, 'escape' ), 10, 4 ); } public static function class_name() { return __CLASS__; } /** * Handles outputting the users field. */ public function render() { // make sure we assign each part of the value we need. $value = wp_parse_args( $this->field->escaped_value(), array( 'name' => '', 'value' => '', ) ); ob_start(); // Do html ?> <div class="name input-wrap"> <label for="<?php echo esc_attr( $this->_id( '_name' ) ); ?>"> <?php echo esc_html( $this->_text( 'parameter_name_text', esc_html__( 'Name', 'wpgetapi' ) ) ); ?> </label> <?php $args = array( 'name' => esc_attr( $this->_name( '[name]' ) ), 'id' => esc_attr( $this->_id( '_name' ) ), 'value' => esc_attr( $value['name'] ), 'desc' => '', 'placeholder' => esc_html__( 'Name of the parameter', 'wpgetapi' ), ); if ( $this->field->args( 'repeatable' ) ) { $args['data-iterator'] = esc_attr( $this->types->iterator ); } // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Ignored since the data is printed input html content. echo $this->types->input( $args ); ?> </div><span class="colon">:</span><div class="value input-wrap"> <label for="<?php echo esc_attr( $this->_id( '_value' ) ); ?>"> <?php echo esc_html( $this->_text( 'parameter_value_text', __( 'Value', 'wpgetapi' ) ) ); ?> </label> <?php $args = array( 'name' => esc_attr( $this->_name( '[value]' ) ), 'id' => esc_attr( $this->_id( '_value' ) ), 'value' => esc_attr( wp_unslash( $value['value'] ) ), 'desc' => '', 'rows' => 1, 'placeholder' => esc_html__( 'Value of the parameter', 'wpgetapi' ), ); if ( $this->field->args( 'repeatable' ) ) { $args['data-iterator'] = esc_attr( $this->types->iterator ); } // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Ignored since the data is printed input html content. echo $this->types->textarea( $args ); ?> </div> <?php // grab the data from the output buffer. return $this->rendered( ob_get_clean() ); } /** * Generate field id attribute * Copy and then tweak the CMB2_Types class's id() method from src/lib/cmb2/includes/CMB2Types.php * * @since 1.1.0 * @param string $suffix For multi-part fields * @param bool $append_repeatable_iterator Whether to append the iterator attribute if the field is repeatable. * @return string Id attribute */ private function _id( $suffix = '', $append_repeatable_iterator = true ) { $id = $this->types->field->id() . $suffix . ( $this->types->field->args( 'repeatable' ) ? '_' . $this->types->iterator : '' ); return $id; } /** * Optionally save the values into separate fields */ public static function maybe_save_split_values( $override_value, $value, $object_id, $field_args ) { // Don't do the override if ( ! isset( $field_args['split_values'] ) || ! $field_args['split_values'] ) { return $override_value; } $encryption = new WpGetApi_Encryption(); $parameter_keys = array( 'name', 'value' ); foreach ( $parameter_keys as $key ) { if ( ! empty( $value[ $key ] ) ) { $updated_value = $encryption->encrypt( $value[ $key ] ); update_post_meta( $object_id, $field_args['id'] . 'parameter_' . $key, $updated_value ); } } remove_filter( 'cmb2_sanitize_parameter', array( __CLASS__, 'sanitize' ), 10, 5 ); // Tell CMB2 we already did the update return true; } public static function sanitize( $check, $meta_value, $object_id, $field_args, $sanitize_object ) { // if not repeatable, bail out. if ( ! is_array( $meta_value ) || ! $field_args['repeatable'] ) { return $check; } $encryption = new WpGetApi_Encryption(); foreach ( $meta_value as $i => $param ) { // if both empty, unset and continue if ( $param['name'] == '' && $param['value'] == '' ) { unset( $meta_value[ $i ] ); continue; } foreach ( $param as $key => $val ) { $meta_value[ $i ][ $key ] = $key === 'name' ? $val : $encryption->encrypt( $val ); } } return array_filter( $meta_value ); } public static function escape( $check, $meta_value, $field_args, $field_object ) { // if not repeatable, bail out. if ( ! is_array( $meta_value ) || ! $field_args['repeatable'] ) { return $check; } $encryption = new WpGetApi_Encryption(); foreach ( $meta_value as $i => $param ) { // if both empty, unset and continue if ( $param['name'] == '' && $param['value'] == '' ) { unset( $meta_value[ $i ] ); continue; } foreach ( $param as $key => $val ) { $meta_value[ $i ][ $key ] = $key === 'name' ? $val : $encryption->decrypt( $val ); } } return array_filter( $meta_value ); } }
Upload File
Create Folder