如何将变量放入小部件的实例中

时间:2016-08-20 作者:Kyle

我正在创建一个处理订单号的小部件。基本结构如下:

// pretty generic widget functions
public function widget($args, $instance)
{
  $order_number = $instance[\'order_number\'];
}
public function update($new_instance, $old_instance)
{
  $instance = $old_instance;
  $instance[\'order_number\'] = strip_tags($new_instance[\'order_number\']);
}


public function form($instance)
{
 if ($instance) {
    $order_number = esc_attr($instance[\'order_number\']);
 }else {
    $order_number = \'\';
}
我通常做的是ask the user for the order number. 像这样:

<input name="<?php echo $this->get_field_name(\'order_number\'); ?>" 
type="text" value="<?php echo $order_number; ?>" />
但现在我想有一个函数order_number. 所以我的功能是

function order_generator($email){
     .....
     return $order_num;
}
我想要order_num 要设置的值为order_number.

我该怎么做?

按照kaiserI的要求更新#1

,尝试对此进行简要解释。

First Case: 我有一个打印订单号的小部件。此订单号由用户在输入字段中输入。如问题中所述,一旦用户输入order_number 它保存在实例中,可以稍后显示。

Now this is the question: 我创建了一个名为order_generator 动态创建订单号。用户不必输入order_number. 函数返回一个名为$order_num. 我想删除要求用户输入订单号的输入字段,并使order_num 值到order_number 所以我可以显示它。

1 个回复
SO网友:CodeMascot

据我所知,您希望分配订单号,如$order_number = order_generator($email) 在widget类内部。

是的,你可以这样做,除非order_generator 在另一个班级。如果你order_generator 函数位于另一个类中,然后首先需要实例化该类,然后调用如下方法$instance_of_your_class->order_generator($email).

希望这有帮助。