Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/ninja-fo.../includes/Admin/Metaboxe...
File: CalculationsReact.php
<?php
[0] Fix | Delete
namespace NinjaForms\Includes\Admin\Metaboxes;
[1] Fix | Delete
[2] Fix | Delete
if (!defined('ABSPATH')) exit;
[3] Fix | Delete
/**
[4] Fix | Delete
* Construct Calculations metabox for the React Submissions page
[5] Fix | Delete
*
[6] Fix | Delete
* Class must have a public function handle that can receive the $extraValue
[7] Fix | Delete
* and a NF submission.
[8] Fix | Delete
*
[9] Fix | Delete
* Output of handle method is a \NinjaForms\Includes\Entities\MetaboxOutputEntity with two properties:
[10] Fix | Delete
*
[11] Fix | Delete
* 'title' (string output of metabox title/header)
[12] Fix | Delete
* 'labelValueCollection' – indexed array of label values
[13] Fix | Delete
*
[14] Fix | Delete
* Each label value array has three keys:
[15] Fix | Delete
* 'label' – label of the output
[16] Fix | Delete
* 'value' – value of that being output
[17] Fix | Delete
* 'styling' – currently accepts 'alert' to add an 'alert' class for CSS styling
[18] Fix | Delete
*/
[19] Fix | Delete
class CalculationsReact
[20] Fix | Delete
{
[21] Fix | Delete
[22] Fix | Delete
/**
[23] Fix | Delete
* Given submission '$extra' data and the complete submission, return array
[24] Fix | Delete
* construct for metabox If nothing to output, then return null
[25] Fix | Delete
*
[26] Fix | Delete
* If the '$extra' data contains all required information, then simply
[27] Fix | Delete
* construct that as label/value/styling arrays.
[28] Fix | Delete
*
[29] Fix | Delete
* If your output requires other information from the submission, use the
[30] Fix | Delete
* $nfSub to extract the required information.
[31] Fix | Delete
*
[32] Fix | Delete
* Note that in this example, we want additional information from the
[33] Fix | Delete
* submission for output so we disregard the $extraValue and work directly
[34] Fix | Delete
* with the $nfSub to extract the information.
[35] Fix | Delete
*
[36] Fix | Delete
* @param mixed $extraValue
[37] Fix | Delete
* @param NF_Database_Models_Submission $nfSub
[38] Fix | Delete
* @return \NinjaForms\Includes\Entities\MetaboxOutputEntity|null
[39] Fix | Delete
*/
[40] Fix | Delete
public function handle($extraValue, $nfSub): ?\NinjaForms\Includes\Entities\MetaboxOutputEntity
[41] Fix | Delete
{
[42] Fix | Delete
$return = null;
[43] Fix | Delete
[44] Fix | Delete
$debug = $this->isDebugSet();
[45] Fix | Delete
[46] Fix | Delete
// extract/construct the label/value/styling arrays
[47] Fix | Delete
$labelValueCollection = self::extractResponses($extraValue,$debug);
[48] Fix | Delete
[49] Fix | Delete
if (!empty($labelValueCollection)) {
[50] Fix | Delete
[51] Fix | Delete
$array = [
[52] Fix | Delete
// Set a translatable title for your metabox
[53] Fix | Delete
'title' => __('Calculations', 'ninja-forms'),
[54] Fix | Delete
[55] Fix | Delete
// set the label/value/styling
[56] Fix | Delete
'labelValueCollection' => $labelValueCollection
[57] Fix | Delete
[58] Fix | Delete
];
[59] Fix | Delete
[60] Fix | Delete
$return = \NinjaForms\Includes\Entities\MetaboxOutputEntity::fromArray($array);
[61] Fix | Delete
}
[62] Fix | Delete
[63] Fix | Delete
return $return;
[64] Fix | Delete
}
[65] Fix | Delete
[66] Fix | Delete
/**
[67] Fix | Delete
* Construct calculations output
[68] Fix | Delete
*/
[69] Fix | Delete
protected static function extractResponses($calculations, ?bool $debug=false ): array
[70] Fix | Delete
{
[71] Fix | Delete
// Initialize collection of label/value/styling arrays
[72] Fix | Delete
$return = [];
[73] Fix | Delete
[74] Fix | Delete
if (is_array($calculations)) {
[75] Fix | Delete
foreach ($calculations as $name => $contents) {
[76] Fix | Delete
$result = [
[77] Fix | Delete
'label' => \esc_html($name),
[78] Fix | Delete
'value' => $contents['value']
[79] Fix | Delete
];
[80] Fix | Delete
[81] Fix | Delete
$return[] = $result;
[82] Fix | Delete
[83] Fix | Delete
if(!$debug){
[84] Fix | Delete
continue;
[85] Fix | Delete
}
[86] Fix | Delete
[87] Fix | Delete
$raw = [
[88] Fix | Delete
'label' => \esc_html($name). __(' - Raw', 'ninja-forms'),
[89] Fix | Delete
'value' => $contents['raw']
[90] Fix | Delete
];
[91] Fix | Delete
[92] Fix | Delete
$return[] = $raw;
[93] Fix | Delete
[94] Fix | Delete
$parsed = [
[95] Fix | Delete
'label' => \esc_html($name) . __(' - Parsed', 'ninja-forms'),
[96] Fix | Delete
'value' => $contents['parsed']
[97] Fix | Delete
];
[98] Fix | Delete
[99] Fix | Delete
$return[] = $parsed;
[100] Fix | Delete
}
[101] Fix | Delete
}
[102] Fix | Delete
return $return;
[103] Fix | Delete
}
[104] Fix | Delete
[105] Fix | Delete
/**
[106] Fix | Delete
* Determine/return if calc debug is set
[107] Fix | Delete
*
[108] Fix | Delete
* Checks for string `&calcs_debug` in URI
[109] Fix | Delete
*
[110] Fix | Delete
* @return boolean
[111] Fix | Delete
*/
[112] Fix | Delete
protected function isDebugSet( ): bool
[113] Fix | Delete
{
[114] Fix | Delete
$referer= $this->getReferer();
[115] Fix | Delete
[116] Fix | Delete
if(\is_null($referer)){
[117] Fix | Delete
return FALSE;
[118] Fix | Delete
}
[119] Fix | Delete
[120] Fix | Delete
$return = strpos($referer,'calcs_debug')>0?TRUE:FALSE;
[121] Fix | Delete
[122] Fix | Delete
return $return;
[123] Fix | Delete
}
[124] Fix | Delete
[125] Fix | Delete
/**
[126] Fix | Delete
* Get the input server referer
[127] Fix | Delete
*
[128] Fix | Delete
* @return mixed
[129] Fix | Delete
*/
[130] Fix | Delete
protected function getReferer( )
[131] Fix | Delete
{
[132] Fix | Delete
$return= filter_input(INPUT_SERVER,'HTTP_REFERER');
[133] Fix | Delete
[134] Fix | Delete
return $return;
[135] Fix | Delete
}
[136] Fix | Delete
}
[137] Fix | Delete
[138] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function