如何在产品上将用户以前的订单显示为选择框选项?

时间:2021-01-11 作者:SchrodingersCat

我有一个音频定制网站(Wordpress/Woocommerce),允许用户以“原样”状态或定制版本购买授权音乐。定制的规格在产品通过货币化的页面选项(如画外音、声音效果等)添加到购物车之前确定。

事实证明,许多客户直到购买后的几天/几周/几个月才知道他们想要定制它。因此,我创建了反映产品选项的单个产品,以便客户仍然可以购买这些产品,并基本上将其“应用”到以前的订单中。

我想做的是在每个产品上创建一个选择框选项,该选项调用用户以前的订单号,以便用户可以指定他们将此新购买应用于哪个以前的订单。

如果有人能对此提供指导,我将不胜感激。

1 个回复
SO网友:Vincenzo Di Gaetano

您可以尝试以下操作:

add_action( \'woocommerce_before_add_to_cart_form\', \'add_list_completed_orders\' );
function add_list_completed_orders() {
    // get orders
    $orders = wc_get_orders (
        array (
            \'status\'        => array( \'wc-completed\' ),
            \'type\'          => \'shop_order\',
            \'limit\'         => -1,
            \'return\'        => \'ids\',
            \'customer_id\'   => get_current_user_id(),
        )
    );

    if ( ! empty( $orders ) ) {
        // set value options
        $options = \'\';
        foreach ( $orders as $order_id ) {
            $options .= \'<option value="\' . $order_id . \'">\' . $order_id . \'</option>\';
        }
        // add list
        $form = \'<label for="orders">Select completed orders:</label>\';
        $form .= \'<select id="orders" name="orders">\' . $options . \'</select>\';
        echo $form;
    }

}
经过测试,效果良好。代码进入主题的函数。php。

相关推荐

评论页面正在显示根index.php,而不是模板页面

Issue: 根索引。显示的是php文件,而不是我创建的模板名称。php。What I have done to try and fix: 删除并创建一个新的评论页面,其routename为;评论;。检查我的模板页面。php来看看我是否忘了什么将模板更改为评论页面的默认模板,并提供相同的索引。php。Other Important Info:我有一个routename工作的开发环境(www.developmentsite.test/reviews), 并显示我的模板页面我还在我的生产网站上创建了一个页面,