{"id":6084,"date":"2021-07-11T07:04:02","date_gmt":"2021-07-11T07:04:02","guid":{"rendered":"https:\/\/musilda.cz\/?p=6084"},"modified":"2021-07-11T07:04:02","modified_gmt":"2021-07-11T07:04:02","slug":"jak-vytvorit-vlastni-dopravni-metodu-ve-woocommerce","status":"publish","type":"post","link":"https:\/\/affinite.io\/cs\/jak-vytvorit-vlastni-dopravni-metodu-ve-woocommerce\/","title":{"rendered":"Jak vytvo\u0159it vlastn\u00ed dopravn\u00ed metodu ve WooCommerce"},"content":{"rendered":"\n

V\u00fdchoz\u00ed dopravn\u00ed metody, kter\u00e9 jsou ve WooCommerce k dispozici, nejsou v\u017edy vyu\u017eiteln\u00e9, pro konkr\u00e9tn\u00ed po\u017eadavky na dopravu zbo\u017e\u00ed. N\u011bkdy si proto mus\u00edte vytvo\u0159it vlastn\u00ed dopravn\u00ed metodu. <\/p>\n\n\n\n

P\u016fvodn\u011b jsem sem cht\u011bl jenom „pl\u00e1cnout“ hotovu t\u0159\u00eddu a hotovo. Lep\u0161\u00ed to ale bude vz\u00edt bod po bodu. <\/p>\n\n\n\n

Vlastn\u00ed dopravu vytvo\u0159\u00edte tak, \u017ee si ud\u011bl\u00e1te plugin, kter\u00fd bude obsahovat t\u0159\u00eddu dopravy. <\/p>\n\n\n\n

Nejprve si mus\u00edte vytvo\u0159it soubor pluginu, m\u016f\u017eete jej nazvat t\u0159eba custom-shipping.php a ulo\u017eit jej do slo\u017eky plugins. <\/p>\n\n\n\n

Na za\u010d\u00e1tek pluginu p\u0159id\u00e1te hlavi\u010dku, aby WordPress poznal, \u017ee jde o plugin:<\/p>\n\n\n\n

\/**\n * @wordpress-plugin\n * Plugin Name:       Custom shipping\n * Plugin URI:\n * Description:\n * Version:           1.0\n * Author:\n * Author URI:\n * Text Domain:       custom-shipping\n * License:           GPL-2.0+\n * License URI:       http:\/\/www.gnu.org\/licenses\/gpl-2.0.txt\n * Domain Path:       \/languages\n *\/<\/code><\/pre>\n\n\n\n

V druh\u00e9m kroku p\u0159id\u00e1te funkci woocommerce_custom_shipping_init, kter\u00e1 se bude p\u0159es hook plugin_loaded prov\u00e1d\u011bt po na\u010dten\u00ed pluginu a kter\u00e1 obsahuje t\u0159\u00eddu custom dopravy. Na konec souboru p\u0159id\u00e1me funkci, pomoc\u00ed kter\u00e9 p\u0159id\u00e1me do pole dostupn\u00fdch doprav dopravn\u00ed metodu. Kl\u00ed\u010d polo\u017eky pole je id dopravy, hodnotou je n\u00e1zev t\u0159\u00eddy. <\/p>\n\n\n\n

function woocommerce_custom_shipping_init(){\n\n\tif ( !class_exists( 'WC_Shipping_Method' ) ) {\n      \treturn;\n\t}\n\n\tif ( ! class_exists( 'WC_Custom_Shipping_Method' ) ) {\n\n\t\tclass WC_Custom_Shipping_Method extends WC_Shipping_Method {\n\n\t\t}\n\n\t}\n\n}\nadd_action('plugins_loaded', 'woocommerce_custom_shipping_init');\n\nfunction add_woo_custom_shipping_method( $methods ) {\n\t$methods['custom'] = 'WC_Custom_Shipping_Method';\n\treturn $methods;\n}\nadd_filter( 'woocommerce_shipping_methods', 'add_woo_custom_shipping_method' );<\/code><\/pre>\n\n\n\n

T\u0159et\u00ed krok je vytvo\u0159en\u00ed konstruktoru. <\/p>\n\n\n\n

V n\u011bm mus\u00edme definovat<\/p>\n\n\n\n