【问题标题】:Dynamically populate a custom form in Woocommerce products在 Woocommerce 产品中动态填充自定义表单
【发布时间】:2019-07-17 03:49:27
【问题描述】:

我有以下代码,它在我的 woocommerce 产品页面上放置了一个基本的隐藏表单,带有一个按钮(它是我正在尝试编写的插件的一部分,它添加了一些在后端输入的自定义选项。myplugin_option_name 是一个这些字符串。)

我基本上希望根据当前产品详细信息动态填充此表单,并且我尝试在下面使用的方法(从我设法拾取/学习的方法)不起作用,我不确定如何继续。我已经尝试了基于其他问题的其他解决方案动态填充字段的各种其他方法,但它们都没有在我的实例中起作用。

add_action( 'woocommerce_single_product_summary', 'my_extra_button_on_product_page', 30 );

function my_extra_button_on_product_page() {
    global $product;

    $url_part = get_option('myplugin_option_name');
    $id = $product->get_id();
    $url = home_url;

    echo '<form action="https://example.com/transactions" method="POST">';
    echo '<input type="hidden" name="locationId" value="{$id}" />';
    echo '<input type="hidden" name="workflow" value="{$url_part}" />';
    echo '<input type="hidden" name="callbackUrl" value="{$url}" />';
    echo '<input type="submit" value= "Customise Product"></input>';
    echo '</form>';
}

也许我错过了一些相当简单的事情,因为在过去的几天里我几乎没有睡觉,试图自学 php 以使其正常工作,所以如果它是未成年人,我提前道歉(愚蠢的)错误。

【问题讨论】:

    标签: php wordpress forms woocommerce product


    【解决方案1】:

    您的代码中有一些错误……请尝试以下操作(未经测试,没有任何保证)

    add_action( 'woocommerce_single_product_summary', 'my_extra_button_on_product_page', 35 );
    function my_extra_button_on_product_page() {
        global $product;
    
        $product_id = $product->get_id();
        $home_url   = home_url(); // <== a mistake here
        $option_url = get_option('myplugin_option_name');
    
        // Display form and populated fields
        echo '<form action="https://example.com/api/transactions" method="POST">
        <input type="hidden" name="locationId" value="'.$product_id.'" />
        <input type="hidden" name="workflow" value="'.$option_url.'" />
        <input type="hidden" name="callbackUrl" value="'.$home_url.'" />
        <input type="submit" value= "'.__("Customize Product", "woocommerce").'"></input>
        </form>';
    }
    

    现在应该会更好。

    【讨论】:

      猜你喜欢
      • 2017-12-11
      • 1970-01-01
      • 2023-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-31
      相关资源
      最近更新 更多