field->escaped_value(), array(
'name' => '',
'value' => '',
) );
ob_start();
// Do html
?>
types->input( array(
'name' => $this->_name( '[name]' ),
'id' => $this->_id( '_name' ),
'value' => $value['name'],
'desc' => '',
'placeholder' => __( 'Name of the parameter', 'wpgetapi' ),
) ); ?>
types->textarea( array(
'name' => $this->_name( '[value]' ),
'id' => $this->_id( '_value' ),
'value' => stripslashes($value['value']),
'desc' => '',
'rows' => 2,
'placeholder' => __( 'Value of the parameter', 'wpgetapi' ),
) ); ?>
rendered( ob_get_clean() );
}
/**
* 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);
}
}