问题描述
我知道问题的第一部分是可能的,但尚未找到如何在后端所有订单中添加自定义字段,然后使用默认值填充该字段。
我要创建一个名为“商家标识符”的自定义字段,然后使用默认名称(例如“ Company X”)填充该字段。
我查看了这段代码,该代码在结帐时添加了输入值,然后显示了订单摘要,但是我只需要将一个字段作为自定义字段添加到后端的每个订单中。
/**
* Process the checkout
*/
add_action('woocommerce_checkout_process','my_custom_checkout_field_process');
function my_custom_checkout_field_process() {
// Check if set,if its not set add an error.
if ( ! $_POST['billing_phone_new'] )
wc_add_notice( __( 'Phone 2 is compulsory. Please enter a value' ),'error' );
}
/**
* Update the order Meta with field value
*/
add_action( 'woocommerce_checkout_update_order_Meta','my_custom_checkout_field_update_order_Meta' );
function my_custom_checkout_field_update_order_Meta( $order_id ) {
if ( ! empty( $_POST['billing_phone_new'] ) ) {
update_post_Meta( $order_id,'billing_phone_new',sanitize_text_field( $_POST['billing_phone_new'] ) );
}
}
/**
* display field value on the order edit page
*/
add_action( 'woocommerce_admin_order_data_after_billing_address','my_custom_checkout_field_display_admin_order_Meta',10,1 );
function my_custom_checkout_field_display_admin_order_Meta($order){
echo '<p><strong>'.__('Phone 2').':</strong> <br/>' . get_post_meta( $order->get_id(),true ) . '</p>';
}
该自定义字段出现在所有新旧订单上之后,我可以添加此内容并将其添加为计划的CSV导出中的一列(稍后再讲-我只需要实现第一部分)
我不确定是否需要先在结帐时使用默认值来隐藏字段,还是不确定是否可以使用其他方法添加自定义字段以在后端的所有订单上显示该字段。
有人可以帮助吗?
谢谢
解决方法
对于新订单,您可以使用以下
import requests
from bs4 import BeautifulSoup
link = 'https://alta.registries.gov.ab.ca/spinii/logon.aspx'
lnotice = 'https://alta.registries.gov.ab.ca/spinii/legalnotice.aspx'
search_page = 'https://alta.registries.gov.ab.ca/SpinII/SearchSelectType.aspx'
map_page = 'http://alta.registries.gov.ab.ca/SpinII/mapindex.aspx'
map_find = 'http://alta.registries.gov.ab.ca/SpinII/mapfinds.aspx'
table_link = 'https://alta.registries.gov.ab.ca/SpinII/popupTitleSearch.aspx?title=628086906'
def get_content(s,link):
r = s.get(link)
soup = BeautifulSoup(r.text,"lxml")
payload = {i['name']:i.get('value','') for i in soup.select('input[name]')}
payload['uctrlLogon:cmdLogonGuest.x'] = '80'
payload['uctrlLogon:cmdLogonGuest.y'] = '20'
r = s.post(link,data=payload)
soup = BeautifulSoup(r.text,'') for i in soup.select('input[name]')}
payload['cmdYES.x'] = '52'
payload['cmdYES.y'] = '8'
s.post(lnotice,data=payload)
s.headers['Referer'] = 'https://alta.registries.gov.ab.ca/spinii/welcomeguest.aspx'
s.get(search_page)
s.headers['Referer'] = 'https://alta.registries.gov.ab.ca/SpinII/SearchSelectType.aspx'
s.get(map_page)
r = s.get(map_find)
s.headers['Referer'] = 'http://alta.registries.gov.ab.ca/SpinII/mapfinds.aspx'
soup = BeautifulSoup(r.text,'') for i in soup.select('input[name]')}
payload['__EVENTTARGET'] = 'Finds$lstFindTypes'
payload['Finds:lstFindTypes'] = 'Linc'
payload['Finds:ctlLincNumber:txtLincNumber'] = '0030278592'
r = s.post(map_find,data=payload)
r = s.get(table_link)
print(r.text)
if __name__ == "__main__":
with requests.Session() as s:
s.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/86.0.4240.75 Safari/537.36'
get_content(s,link)
对于现有订单,您可以执行以下功能,该功能在执行(查看任何页面-前端)后可能会被删除。
The only problem with this site is that it is unavailable in daytime for maintenance.